scanf("%s",s)输入参数为什么不能是字符串常量
时间: 2023-12-15 10:33:26 浏览: 59
408c语言数组-gets-puts-str系列-scanf字符型数组
scanf("%s",s)中的%s是用来读取字符串的格式控制符,它会将输入的字符串存储到s所指向的内存空间中。而字符串常量是存储在只读数据段中的,是不能被修改的,因此不能作为%s的参数。如果要读取字符串常量,可以先将其复制到一个字符数组中,然后再使用scanf()函数读取该字符数组。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[30];
strcpy(str, "hello world");
scanf("%s", str);
printf("%s\n", str);
return 0;
}
```
阅读全文