Crazy guest 2022-04-11 17:44 采纳率: 100%
浏览 28
已结题

为什么会出现这种重复的情况

#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;
}

img

为什么运行结果会出现重复的情况?

  • 写回答

2条回答 默认 最新

  • 关注

    使用%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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 4月11日