怎么样连接两个char*型的字符串变量,

https://blog.csdn.net/qq_31839479/article/details/51355949  怎么样连接两个char*型的字符串变量

https://blog.csdn.net/qq_20515461/article/details/83301941  C++中如何连接两个char数组

 

直接见代码

#include <iostream>
using namespace std;
int main()
{
    char* str1 = "Hello";
    char*str2 = "World";
    //方式一
    char str3[20];
    strcpy(str3, str1);
    strcat(str3, str2);
    cout << str3 << endl;
    //方式二
    //char str3[20];
    sprintf(str3,"%s%s",str1,str2);
    cout << str3 << endl;
    return 0;
}
--------------------------------------------------------------------------------------------

问题:

因为char数组不以‘\0’结尾,所以连接两个char型数组无法直接使用strcat等函数,可以采用sprintf函数

 

  1.   string s;
  2.    
  3.   char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
  4.   char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};
  5.    
  6.   sprintf(s, "%.*s%.*s", sizeof(a1), a1, sizeof(a2), a2);
  7.    
  8.   /*
  9.    
  10.   1.在"%m.ns"中,m 表示占用宽度(字符串长度不足时补空格,超出了则按照实际宽度打印),n表示从相应的字符串中最多取用的字符数。
  11.   2.sprintf 采用"*"来占用一个本来需要一个指定宽度或精度的常数数字的位置
  12.    
  13.    
  14.    
  15.   */

参考:

c语言,printf中的*号解析

C++字符串格式化 sprintf、printf

C/C++语言拾遗(二)--单字节字符串

上一篇:竖式问题


下一篇:sscanf与sprintf详解及常见用法