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

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

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

https://www.cnblogs.com/wuruofeng/p/10412559.html   C++中string、char *、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++语言拾遗(二)--单字节字符串

C++中string、char *、char[]的转换

posted on 2021-02-24 17:31  疯狂delphi  阅读(800)  评论(0编辑  收藏  举报

导航