Abu*_*Abu 0 c concatenation memcpy
例如,如何连接两个字符串
char s[5]={'s','a','\0','c','h'};
char m[11]={'b','e','\0','c','h','b','\0','e','\0','c','h'};
Run Code Online (Sandbox Code Playgroud)
有许多空字符。我试过了strcat()。它不工作。有什么办法吗?
这很棘手,因为根据定义,C 字符串是以空字符结尾的。所以你真正拥有的是你想要放在一起的两个字节缓冲区,而不是两个字符串。(strcat顺便说一下,这就是为什么像这样的函数在这里不起作用的原因——他们希望它们的参数是 C 字符串。)
由于您不能像使用 C 字符串一样使用空字符来告诉您缓冲区的结束位置,因此您需要提前知道缓冲区的大小。然后它就像将两个位块传输到单个缓冲区一样简单:
char dest[16];
memcpy(dest, s, 5); // Copy s to the final buffer
memcpy(dest + 5, m, 11); // Copy m to the final buffer just after s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |