若要求从键盘读入含有空格字符的字符串,应使用函数______。 A、getc() B、gets() C、getchar()D、scanf()
时间: 2023-08-01 18:11:13 浏览: 143
用getchar函数输入一串字符,依次读入
如果要从键盘读入含有空格字符的字符串,应该使用函数 `fgets()`。
`gets()` 函数已经被废弃,不再推荐使用。而 `scanf()` 函数遇到空格字符就会停止读取,因此无法读入含有空格字符的字符串。
`getc()` 函数和 `getchar()` 函数都是读取单个字符,无法读入完整的字符串。而 `fgets()` 函数可以读取一行字符串,包括其中的空格字符,格式如下:
```c
fgets(str, n, stdin);
```
其中,`str` 表示存储字符串的字符型数组名,`n` 表示最大读取字符数,`stdin` 表示读取输入流。例如,如果要读取不超过 100 个字符的一行字符串,可以使用以下语句:
```c
char str[101];
fgets(str, 100, stdin);
```
需要注意的是,`fgets()` 函数读取到换行符 `\n` 时,会将其作为字符串的一部分读入,并将其存储到字符串中。因此,如果需要去掉字符串末尾的换行符,可以使用以下语句:
```c
str[strcspn(str, "\n")] = '\0';
```
其中,`strcspn(str, "\n")` 函数返回字符串 `str` 中首次出现换行符的位置,然后将其替换为字符串结束符 `\0`。
阅读全文