很长一段时间以来,我一直在想C语言中的字符串原理。我不知道为什么有些老师会使用我们只能在其中包含6个字母的示例数组{{ 1}},name[4]
,但是还有其他老师使用"john"
来为size + 1
留出空间,但是当我在code :: blocks中尝试时,却没有得到无论哪种情况都存在任何问题。我不知道为什么,即使我输入的名称超出范围示例\0
,name[4]
也没有问题,我不明白为什么程序不会崩溃。 >
"Cristiano Ronaldo"
答案 0 :(得分:3)
如果您输入足够长的单词而没有任何空格,该程序最终将在大多数现代系统上崩溃。
您可以通过以下方式修复它:
#include <stdio.h>
int main() {
char name[7];
printf("Type your name\n");
if (scanf("%6s", name) == 1)
printf("your name is: %s\n", name);
return 0;
}