C语言实现:输入5个字符串,从中找出最大的字符串并输出。要求用二维字符数组存 放这5个字符串。
时间: 2024-05-10 11:18:10 浏览: 14
以下是用C语言实现输入5个字符串,从中找出最大的字符串并输出的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char strings[5][100];
int maxIndex = 0;
printf("请输入5个字符串:\n");
for (int i = 0; i < 5; i++) {
scanf("%s", strings[i]);
// 找出长度最长的字符串的下标
if (strlen(strings[i]) > strlen(strings[maxIndex])) {
maxIndex = i;
}
}
printf("最长的字符串是: %s\n", strings[maxIndex]);
return 0;
}
```
以上代码中,我们使用了一个二维字符数组 `strings` 来存放输入的5个字符串。同时,我们使用了一个变量 `maxIndex` 来记录长度最长的字符串的下标。在输入字符串的过程中,我们不断比较当前输入字符串的长度和最长字符串的长度,如果当前字符串更长,就更新 `maxIndex` 的值。最后,输出 `strings[maxIndex]` 即可得到最长的字符串。
相关问题
c语言实现5.输入5个字符串,从中找出最大的字符串并输出。要求用二维字符数组存放 这5个字符串
下面是 C 语言实现输入 5 个字符串,从中找出最大的字符串并输出的代码,使用了二维字符数组存放这 5 个字符串:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[5][MAX_LEN];
char max_str[MAX_LEN];
int i;
printf("请输入 5 个字符串:\n");
for (i = 0; i < 5; i++) {
fgets(str[i], MAX_LEN, stdin);
// 去掉末尾的 '\n'
str[i][strlen(str[i]) - 1] = '\0';
}
// 假设第一个字符串为最大字符串
strcpy(max_str, str[0]);
for (i = 1; i < 5; i++) {
if (strcmp(str[i], max_str) > 0) {
strcpy(max_str, str[i]);
}
}
printf("最大的字符串是:%s\n", max_str);
return 0;
}
```
在上面的代码中,我们使用了 `fgets` 函数来读取字符串,因为它可以避免输入字符串超出数组大小的问题。在比较字符串大小时,我们使用了 `strcmp` 函数,它可以比较两个字符串的大小。如果返回值大于 0,说明第一个字符串大于第二个字符串;如果返回值小于 0,说明第一个字符串小于第二个字符串;如果返回值等于 0,说明两个字符串相等。最后,我们使用 `strcpy` 函数将最大字符串复制到 `max_str` 中,并输出结果。
使用C语言编写程序,要求:输入5个字符串,从中找出最大的字符串并输出。要求用二维字符数组存放这5个字符串。
下面是一个简单的程序,可以实现你的需求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 字符串的最大长度
int main() {
char strings[5][MAX_LEN]; // 存放5个字符串的二维字符数组
int max_index = 0; // 最大字符串的下标
int i;
// 输入5个字符串
for (i = 0; i < 5; i++) {
printf("请输入第%d个字符串:", i + 1);
scanf("%s", strings[i]);
}
// 找出最大的字符串
for (i = 1; i < 5; i++) {
if (strcmp(strings[i], strings[max_index]) > 0) {
max_index = i;
}
}
// 输出最大字符串
printf("最大字符串是:%s\n", strings[max_index]);
return 0;
}
```
程序中,我们使用了一个二维字符数组 `strings` 存放5个字符串,每个字符串的最大长度为100。然后我们使用循环输入这5个字符串,并在循环后使用 `strcmp` 函数比较字符串的大小,找出最大字符串的下标。最后输出最大字符串即可。