- 凡是常量区定义的数据是不能修改的
- 字符串末尾是 \0
- gets 和 canf 都是输入设备获取,但是 gets 会把空格当成内容,回车是输出,canf 空格是分隔符,会输出多个字符串,回车是输出
1. scanf
printf("input str\n");
while (1) {
// 如果输入超过 10 个字节的字符串 会出现栈溢出 但是不会报错
char str1[10];
scanf("%s", str1);
printf("str=%s\n", str1);
}
2. gets:避免输入带空格的字符串被拆分为两个字符串
while (1) {
char str1[10];
gets(str1);
printf("str=%s\n", str1);
}
3. fgets:避免输入带空格的字符串被拆分为两个字符串 同时避免栈溢出
char str1[10];
// 内容 限制长度 命令行
fgets(str1, 10, stdin);
// 十个字节一组
printf("str=%s\n", str1);
}
4. 常量区的内容是不能修改的
char *str = "abc";
gets(str);
printf("str=%s\n", str);
string 之所以可以修改是因为修改的指针指向类型
char *str = "abc";
// gets(str);
str = "123";
printf("str=%s\n", str);