getchar() 吸收空格
时间: 2023-11-12 22:09:00 浏览: 156
getchar()函数是C语言中的一个输入函数,用于从标准输入流中读取一个字符。与scanf()函数不同的是,getchar()函数不会忽略空格,它会将空格作为一个字符读入。因此,可以利用while循环和getchar()函数来读取含有空格的数据。在引用中的代码中,就是利用while循环和getchar()函数来读取用户输入的密码。
相关问题
c语言getchar吸收空格
是的,C语言中的getchar函数会读取输入缓冲区中的下一个字符,无论它是空格、制表符、换行符或其他字符。所以如果输入中有空格,getchar函数也会将其读取并存储到变量中。如果你需要跳过空格等空白字符,可以使用scanf函数的格式控制符"%s"来读取一个字符串,这样空格和制表符会被自动忽略。另外,你也可以使用getchar函数读取字符,并在读取到非空白字符之前跳过所有空格字符,如下所示:
```c
int c;
while ((c = getchar()) != EOF && isspace(c)) {
// 跳过空白字符
}
```
其中isspace函数用于判断一个字符是否为空白字符。
有n个字符串,找到最短的字符串并输出,测试数据有多组,第一行的正整数T表示测试数据的组数。每组的第一行给出 一个正整数n(n≤10),表示该组测试数据中字符串的个数,后跟n行,每行一个一个字符串(不超过100个字符,可能包含空格)对于每组测试数据,输出最短的字符串,每组单独占一行,若有多个字符串都最短,则输出最后一个最短的,用getchar()函数来吸收回车。c语言程序
下面是使用 `getchar()` 函数来吸收回车的 C 语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
int T;
scanf("%d", &T);
getchar(); // 吸收回车
while (T--) {
int n;
scanf("%d", &n);
getchar(); // 吸收回车
char shortest[101] = "";
while (n--) {
char str[101];
scanf("%[^\n]", str);
getchar(); // 吸收回车
if (strlen(shortest) == 0 || strlen(str) < strlen(shortest)) {
strcpy(shortest, str);
} else if (strlen(str) == strlen(shortest)) {
strcpy(shortest, str);
}
}
printf("%s\n", shortest);
}
return 0;
}
```
主要的修改是在读入每个字符串时使用了 `%[^\n]` 格式字符串,这样可以读入包含空格的字符串,而不会被空格截断。另外,在读入每个字符串后使用 `getchar()` 函数来吸收回车。
其他部分和之前的程序一样,不再赘述。
阅读全文