C语言文件题,找最长字符串

在main函数中创建一个文件,将m个字符串写入文件中。打开该文件,读出所有字符串,并找出最长的一个字符串,将其保存到另一个文件中。要求:m、字符串由键盘输入。


#include <stdio.h>
#include <string.h>

int main()
{
int m, i, max_len = 0;
char str[100], max_str[100], filename[20];
FILE *fp;

printf("请输入要写入的字符串个数:");
scanf("%d", &m);

// 打开文件并写入字符串
fp = fopen("strings.txt", "w");
for (i = 0; i < m; i++) {
    printf("请输入第%d个字符串:", i + 1);
    scanf("%s", str);
    fprintf(fp, "%s\n", str);
}
fclose(fp);

// 读取文件并找出最长的字符串
fp = fopen("strings.txt", "r");
while (fscanf(fp, "%s", str) != EOF) {
    if (strlen(str) > max_len) {
        max_len = strlen(str);
        strcpy(max_str, str);
    }
}
fclose(fp);

// 将最长的字符串保存到文件中
printf("最长的字符串为:%s\n", max_str);
printf("请输入要保存到的文件名:");
scanf("%s", filename);
fp = fopen(filename, "w");
fprintf(fp, "%s", max_str);
fclose(fp);

return 0;
}