使用atoi()
函数时,为什么会出现错误?
#include <stdio.h>
#include <string.h>
int main()
{
char s1[10], s2[10];
int x=5, y=6, z;
sprintf(s1, "%d", x);
sprintf(s2, "%d", y);
strcat(s1, s2);
z = atoi(s1);
printf("%d, %s", z, s1);
return 0;
}
atoi()
在<stdlib.h>
中声明,正如man atoi
所述,因此将其视为错误是合理的(确实应该将其视为错误,而不仅仅是警告)。 - Jonathan Lefflerint
,char s1 [10],s2 [10];
数组在整个值范围内都太小而不安全。可能有10个数字、一个减号和一个字符串终止符,总共12个字符。因此,请将它们定义为char s1 [16],s2 [16];
,不要太吝啬。 - Weather Vane