C字符*+字符*串联



我有char* str1char* str2

我想像这样连接res = str1 + str2

strcat(str1, str2)更改str1的值,这不是我需要的

如何得到这个结果?

您必须首先复制第一个字符串,然后将第二个字符串连接到:

strcpy(res, str1);
strcat(res, str2);

确保res有足够的空间用于包括空终止符在内的结果。

或者作为一句话,如果你愿意的话(谢谢,Eugene Sh.(:

strcat(strcpy(res,str1), str2)

另一个(也是更安全的(选项是使用snprintf(),它可以确保不会溢出目标缓冲区:

int count = snprintf(res, sizeof res, "%s%s", str1, str2);

如果count小于res的大小减1,则截断结果以进行拟合。注意,res必须是一个数组(不衰减为指针(,sizeof res才能工作。若您有另一个缓冲区长度的来源,您可以使用它。

(snprintf信息改编自用户3386109的评论——谢谢!(

最新更新