J. *_*roy 0 c++ merge pointers char
这是我最近遇到的一个问题。
如果我要做这样的事情:
string str1 = "some";
string str2 = "thing";
cout << str1 + str2 << endl;
Run Code Online (Sandbox Code Playgroud)
我会得到下一个输出: something
但我只有这个:
char *chr1 = "How do"
char *chr2 = "I do this?"
Run Code Online (Sandbox Code Playgroud)
我需要得到以下输出
那么,我该怎么做?是的,我真的很需要char *。
您需要创建 size 的缓冲区strlen(chr1) + strlen(chr2) + 1 + 1,(最后+1因为 strlen 返回没有空终止符的字符串长度,但 c-string 应该以空终止符结尾)然后将第一个字符串复制到新缓冲区中str(n)cpy,然后使用str(n)cat.
char* buffer = new char[strlen(chr1) + strlen(chr2) + 1 + 1];
strcpy(buffer, chr1);
strcat(buffer, " ");
strcat(buffer, chr2);
// use buffer
delete[] buffer;
Run Code Online (Sandbox Code Playgroud)