在main函数中创建一个文件,将m个字符串写入文件中。打开该文件,读并找出最长的一个字符串,将其保存到另一个文件中。要求:m、字符串由键盘输入,用c语言实现
时间: 2023-03-24 10:00:20 浏览: 143
文件包含了五个不同的函数,每个函数展示了 strcpy 的一个用法示例 在 main 函数中
下面是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1000
int main() {
char filename[MAX_SIZE], m[MAX_SIZE], max_char;
int i = 0, max_count = 0, count = 0;
// 从键盘读入文件名和字符串m
printf("请输入文件名:");
scanf("%s", filename);
printf("请输入字符串m:");
scanf("%s", m);
// 打开文件并读入内容
FILE *fp;
if ((fp = fopen(filename, "r")) == NULL) {
printf("文件打开失败!\n");
exit(1);
}
char ch;
while ((ch = fgetc(fp)) != EOF) {
if (ch == m[i]) {
i++;
count++;
if (count > max_count) {
max_count = count;
max_char = ch;
}
} else {
i = 0;
count = 0;
}
}
fclose(fp);
// 将最长的字符串保存到文件中
char result[MAX_SIZE];
sprintf(result, "最长的字符串是%c,长度为%d", max_char, max_count);
FILE *fp2;
if ((fp2 = fopen("result.txt", "w")) == NULL) {
printf("文件打开失败!\n");
exit(1);
}
fputs(result, fp2);
fclose(fp2);
printf("已保存结果到result.txt文件中。\n");
return 0;
}
```
这个程序中,我们首先定义了两个字符串变量`filename`和`m`,用于存储文件名和输入的字符串m。然后我们通过`scanf()`函数从键盘读入这两个变量的值。
接下来,我们通过`fopen()`函数打开文件,并使用`fgetc()`函数逐个读取文件中的字符。如果当前字符与字符串m中的字符匹配,我们就将计数器`count`加1,同时判断当前计数器的值是否大于之前的最大计数器`max_count`,如果是,就更新`max_count`和最长字符`max_char`的值。
如果当前字符与字符串m中的字符不匹配,我们就将计数器`count`和字符串m中匹配的字符的位置`i`都重置为0。
最后,我们将结果保存到文件`result.txt`中,使用`sprintf()`函数将结果格式化为字符串,然后使用`fputs()`函数将字符串写入文件中。
注意:为了让程序更加健壮,我们对文件打开和写入结果文件等可能出现错误的情况进行了处理。
阅读全文