有n个字符串,找到最短的字符串并输出,测试数据有多组,第一行的正整数T表示测试数据的组数。每组的第一行给出 一个正整数n(n≤10),表示该组测试数据中字符串的个数,后跟n行,每行一个一个字符串(不超过100个字符,可能包含空格)对于每组测试数据,输出最短的字符串,每组单独占一行,若有多个字符串都最短,则输出最后一个最短的,用getchar()函数来吸收回车。c语言程序
时间: 2024-03-14 17:43:35 浏览: 70
下面是使用 `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()` 函数来吸收回车。
其他部分和之前的程序一样,不再赘述。
阅读全文