gpt4 book ai didi

c - 为什么新字符串上的 strcat() 在开始时会抛出未定义的字符,而 strcpy 没问题?

转载 作者:太空宇宙 更新时间:2023-11-04 05:15:27 26 4
gpt4 key购买 nike

例如

sprintf(pos,"%f ",cl.snap.ps.origin[0]); //don't start with strcat
sprintf(tmp,"%f ",cl.snap.ps.origin[1]);strcat(pos, tmp);

很好。

sprintf(tmp,"%f ",cl.snap.ps.origin[0]);strcat(pos, tmp);
sprintf(tmp,"%f ",cl.snap.ps.origin[1]);strcat(pos, tmp);

不好。

最佳答案

strcat() 函数期望目标参数已经包含一个正确的以 null 结尾的字符串。在您的情况下,听起来 pos 包含一些看起来 像空终止字符串的垃圾,但不是您所期望的。 strcat() 尽职尽责地附加到该垃圾的末尾。

解决此问题的一种方法是在您的代码之前初始化 pos:

pos[0] = '\0';
sprintf(tmp,"%f ",cl.snap.ps.origin[0]);strcat(pos, tmp);
sprintf(tmp,"%f ",cl.snap.ps.origin[1]);strcat(pos, tmp);

关于c - 为什么新字符串上的 strcat() 在开始时会抛出未定义的字符,而 strcpy 没问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3370349/

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