#牛客在线求职答疑中心#c语言中为什么char s[5]={"ABCDE"}; 和char[5]={'A','B','C','D','E'};和char*s; scsanf("%S",s);
这三个不能用puts(s);输出?
这三个不能用puts(s);输出?
全部评论
这是因为在C语言中,puts()函数只能用于输出以'\0'结尾的字符串。
在第一个例子中,char s[5] = "ABCDE";,字符串"ABCDE"在初始化时并没有以'\0'结尾,因此puts(s)会输出乱码。
在第二个例子中,char s[5] = {'A', 'B', 'C', 'D', 'E'};,这个字符串也没有以'\0'结尾,因此puts(s)也会输出乱码。
在第三个例子中,char* s; scanf("%s", s);,这里并没有对s进行初始化,s是一个野指针,puts(s)可能会导致程序崩溃。
如果你想使用puts()函数输出字符串,你需要确保字符串以'\0'结尾。例如:
char s[6] = "ABCDE";
puts(s);
这样puts()函数就能正确输出字符串"ABCDE"了。
送花
回复
分享
相关推荐
04-10 14:26
门头沟学院 计算机类 点赞 评论 收藏
转发
投递洛谷等公司7个岗位
点赞 评论 收藏
转发