C语言中字符串怎么从终端赋值
时间: 2024-03-10 20:47:57 浏览: 128
C语言中字符串处理
在 C 语言中,可以使用标准库函数 `scanf` 或 `fgets` 从终端读取字符串并进行赋值操作。
1. 使用 `scanf` 函数从终端读取字符串:
```c
char str[20];
printf("请输入字符串:");
scanf("%s", str);
printf("您输入的字符串是:%s\n", str);
```
这里的 `%s` 是格式化字符串,表示读取一个以空格、制表符或换行符分隔的字符串。需要注意的是,`scanf` 函数存在安全隐患,无法保证输入的字符串不会超出目标字符串的空间,所以需要使用 `%s` 后面加上一个数字,表示最多读取的字符数,避免发生缓冲区溢出。例如:
```c
char str[20];
printf("请输入字符串:");
scanf("%19s", str); // 最多读取 19 个字符
printf("您输入的字符串是:%s\n", str);
```
2. 使用 `fgets` 函数从终端读取字符串:
```c
char str[20];
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
printf("您输入的字符串是:%s\n", str);
```
这里的 `sizeof(str)` 表示目标字符串的空间大小,`stdin` 表示从标准输入(即终端)读取数据。`fgets` 函数可以读取指定长度的字符串,且不会发生缓冲区溢出。需要注意的是,`fgets` 函数会读取换行符,所以可能会导致输出结果出现多余的空行,需要手动去除。
阅读全文