输入5个字符串,输出其中最长的字符串。(用指针实现) 【输入形式】输入5个字符串,每个字符串占一行。 【输出形式】输出最长的字符串
时间: 2024-05-03 10:18:16 浏览: 72
下面是一个用指针实现的C语言程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char strs[5][MAX_LEN + 1]; // 存储5个字符串
char *longest = strs[0]; // 最长的字符串,初始值为第一个字符串
int i;
// 读入5个字符串
for (i = 0; i < 5; i++) {
fgets(strs[i], MAX_LEN + 1, stdin);
// 去掉字符串末尾的换行符
if (strchr(strs[i], '\n') != NULL) {
*strchr(strs[i], '\n') = '\0';
}
}
// 找出最长的字符串
for (i = 1; i < 5; i++) {
if (strlen(strs[i]) > strlen(longest)) {
longest = strs[i];
}
}
// 输出最长的字符串
printf("Longest string: %s\n", longest);
return 0;
}
```
程序中使用了一个二维字符数组 `strs` 存储5个字符串,每个字符串最长占 `MAX_LEN` 个字符。通过循环读入5个字符串,并使用 `fgets()` 函数将每个字符串读入到数组中。读入后,使用 `strchr()` 函数找到字符串中的换行符,将其替换为结束符 `\0`,以去掉字符串末尾的换行符。
接着,使用一个指针 `longest` 指向数组中的第一个字符串,遍历数组中剩下的4个字符串,找到其中最长的字符串并将其指针赋给 `longest`。最后输出 `longest` 所指向的字符串即可。
阅读全文