利用3×20的二维字符数组存放3个字符串,找出其中最大的字符串并输出。
时间: 2023-09-15 16:05:57 浏览: 349
### 回答1:
您好!感谢您对 ChitGPT 的使用。针对您的问题,我可以给出以下代码示例:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[3][20];
int i, max = 0;
printf("请分别输入三个字符串:\n");
for (i = 0; i < 3; i++) {
gets(str[i]);
if (strlen(str[i]) > strlen(str[max]))
max = i;
}
printf("最大的字符串为:%s\n", str[max]);
return 0;
}
```
当然,如果您需要更多的解释或补充,我也可以为您提供。
### 回答2:
假设给定的三个字符串为s1、s2、s3。
首先,声明一个3×20的二维字符数组进行存储,用arr[3][20]表示。
然后,依次将s1、s2、s3分别拷贝到arr的第一、二、三行:
```
strcpy(arr[0], s1);
strcpy(arr[1], s2);
strcpy(arr[2], s3);
```
接着,声明一个整型变量max_length用于存放最大字符串的长度,初值设置为0。
再声明一个整型变量max_index用于存放最大字符串的索引位置,初值设置为0。
接下来,循环遍历arr数组中的三个字符串,通过strlen函数获取每个字符串的长度,与max_length进行比较。
如果当前字符串的长度大于max_length,则更新max_length为当前长度,并将max_index设置为当前字符串的索引位置。
```
for (int i = 0; i < 3; i++) {
int len = strlen(arr[i]);
if (len > max_length) {
max_length = len;
max_index = i;
}
}
```
最后,通过printf函数输出最大的字符串:
```
printf("最大字符串为:%s\n", arr[max_index]);
```
整个过程就是将三个字符串存放到二维字符数组中,然后通过比较字符串长度找出最大的字符串,并将其输出。
### 回答3:
假设二维字符数组为array[3][20],表示存放3个字符串,其中每个字符串的最大长度为20个字符。
首先,通过循环输入3个字符串存入二维数组中。代码如下:
```
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char array[3][20]; // 定义二维字符数组,存放3个字符串
cout << "请输入3个字符串:" << endl;
for (int i = 0; i < 3; i++) {
cin.getline(array[i], 20); // 通过cin.getline()函数输入字符串并存入二维数组中
}
// 找出最大的字符串并输出
int max_length = strlen(array[0]); // 假设第一个字符串长度最大
int max_index = 0; // 最大字符串的索引
for (int i = 1; i < 3; i++) {
int length = strlen(array[i]);
if (length > max_length) { // 如果当前字符串长度大于最大长度
max_length = length; // 更新最大长度
max_index = i; // 更新最大字符串的索引
}
}
cout << "最大的字符串为:" << array[max_index] << endl;
return 0;
}
```
运行程序后,输入3个字符串后会找出其中最大的字符串并输出。
注意:在输入字符串时,使用`cin.getline()`函数可以避免空格被分割成多个字符串。另外,为了使用`strlen()`函数获取字符串长度,需要添加头文件`<cstring>`。
阅读全文