#include <stdio.h>
int main()
{
char arr1[] = "ddd";
char arr2[] = { 'a', 'b', 'c' ,'f'};
char arr3[] = { 'a', 'b', 'c' ,'d'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
为什么运行结果会出现重复的情况?
使用%s输出字符数组的时候直到遇到\0才会结束,arr2和arr3中没有设置\0元素。改成下面的就可以了:
#include <stdio.h>
int main()
{
char arr1[] = "ddd";
char arr2[] = { 'a', 'b', 'c' ,'f' ,'\0'}; //在最后增加'\0'
char arr3[] = { 'a', 'b', 'c' ,'d' ,'\0'}; //在最后增加'\0'
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!