如何在C++中* char + * char?

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 *

For*_*veR 5

您需要创建 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)