如下程序,有不明白的地方继续追问:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a[] = {10,11,12};
int i;
char s[100] = "";
char buf[100];
for (i = 0; i < sizeof(a)/sizeof(int); i++){
sprintf(buf, "%d", a[i]);//把a[i]转成字符串,存在buf里。
strcat(s, buf);//将buf拼接到s尾部。
}
puts(s);
system("pause");
return 0;
}
追问为什么不需要再循环后面给字符串s加上结束符‘/0’; 另外,请大神分析一下:
内存错误???
追答因为strcat进行字符串拼接的时候自动补充了'/0'。补充地,字符串复制函数strcpy也是一样。str开头的字符串处理函数一般都会自动补'\0'的,它们毕竟都叫“字符串”处理函数嘛,没有'\0'就不叫字符串了。