用C语言写程序:定义一个4X10的二维字符数组,从in.txt中读取4个字符串, 输出其中最短的字符串。 提示:二维字符数组的每一行是一个字符串,程序简单,定义的变量尽量简短,不调用函数。
时间: 2024-11-13 21:26:48 浏览: 18
将如下一个4X4矩阵存入数组中,输出数组,求出其中的最大数和最小数:.c
在C语言中,你可以按照以下步骤来完成这个任务:
首先,我们需要定义一个二维字符数组来存储四个字符串,并设置其大小为4行10列,因为每个字符串通常不超过这一长度。然后,我们打开文件`in.txt`并逐行读取内容,将每行转换成字符数组并存储到我们的二维数组中。最后,我们可以遍历这个数组,比较每个字符串的长度,找到最短的那个。
```c
#include <stdio.h>
#include <string.h>
#define ROWS 4
#define COLS 10
// 定义二维字符数组
char str_array[ROWS][COLS];
int main() {
FILE *file;
char line[COLS + 1]; // 存储一行文本
// 打开文件
if ((file = fopen("in.txt", "r")) == NULL) {
printf("Error opening file.\n");
return 1;
}
// 逐行读取文件
for (int i = 0; i < ROWS; ++i) {
fgets(line, COLS + 1, file); // 不包括换行符
line[strlen(line) - 1] = '\0'; // 去除fgets的结束符
strcpy(str_array[i], line);
}
fclose(file);
// 初始化一个最长字符串指针
char *shortest_str = str_array[0];
int shortest_length = strlen(shortest_str);
// 比较其他字符串长度
for (int j = 1; j < ROWS; ++j) {
int length = strlen(str_array[j]);
if (length < shortest_length) {
shortest_str = str_array[j];
shortest_length = length;
}
}
// 输出最短的字符串
printf("The shortest string is: %s\n", shortest_str);
return 0;
}
阅读全文