gpt4 book ai didi

c - 如何连接两个包含多个空字符的字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:58 24 4
gpt4 key购买 nike

例如如何连接两个字符串

char s[5]={'s','a','\0','c','h'};

char m[11]={'b','e','\0','c','h','b','\0','e','\0','c','h'};

有很多空字符。我尝试了 strcat()。它不工作。有什么办法吗?

最佳答案

这很棘手,因为根据定义,C 字符串以 null 结尾。所以你真正拥有的是你想要放在一起的两个字节缓冲区,而不是两个字符串。 (这就是为什么像 strcat 这样的函数在这里不起作用的原因——顺便说一下,它们希望它们的参数是 C 字符串。)

由于您不能像使用 C 字符串那样使用空字符来告诉您缓冲区的结束位置,因此您需要提前知道缓冲区的大小。然后就像将两者位 block 传输到一个缓冲区一样简单:

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

关于c - 如何连接两个包含多个空字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com