这是在c中添加两个字符串的有效方法吗?

BRH*_*HSM -3 c string

我有一个函数,两个字符串string_onestring_two一个指向字符的指针.

我想到了一种将它们添加到一起的方法:

while (*string_one){
    string_one++;
    }
    *string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)

但我看不到输出中的第二个字符串!

如何添加两个字符串呢?我接近了吗?

And*_*rsK 6

当你写作

*string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)

你只是复制一个字符,因为你正在取消引用一个字符指针

要相互添加两个字符串,您需要覆盖第一个字符串上的\ 0,然后追加第二个字符串中的字符(前提是您有足够的空间来执行此操作).

所以这

while (*string_one) {
  string_one++;
}
*string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)

只会用string_two中的第一个字符覆盖\ 0,这将导致第一个字符串不再为null终止.

相反,你应该这样做类似的事情

while (*string_one) {
  string_one++;
}
while (*string_two) {
  *string_one++ = *string_two++;
}
*string_one = '\0';
Run Code Online (Sandbox Code Playgroud)

再次假设string_one最初指向一个足以容纳两个字符串的字符串.