使用目前所学VS,制作一个小程序,具有打开一个文本文件(.txt)且找出含有某个词的句子并保存为一个新的文本文件等功能(仅支持英文)。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define exit_failure 1
#define file_name 100int main(void)
{
int i=0,m,n,k;
char file_name1[file_name],file_name2[file_name];
char ch;
char str[100] = {'\0'};
char substr[100] = {'\0'};;
FILE *fp1,*fp2; printf("请输入需要查找的文件路径:");
gets(file_name1);
printf("请输入需要查找的单词:");
gets(substr);
printf("保存到哪里(文件路径):");
gets(file_name2); if((fp1=fopen(file_name1,"r+"))==NULL)
{
puts("打开文件1失败");
system("pause");
exit(exit_failure);
}fp2 = fopen(file_name2, "a+");//如果文件不存在if (fp2 == NULL){puts("打开文件2失败"); fp2 = fopen(file_name2, "a+");}
fclose(fp2);do
{ m=0;n=0;k=n;memset(str, 0x00, sizeof (char) * 100);for(i=0;;i++){ch=fgetc(fp1); if (ch=='.'||ch=='?'||ch=='!'){str[i] = ch; while(m<strlen(str)&&n<strlen(substr)){if(str[m]==substr[n]){++m;++n;}else{n=0;m=++k;}}if(n>=strlen(substr)){fp2 = fopen(file_name2, "a+");puts(str);fprintf(fp2,"%s\n",str);fclose(fp2); } break; }else{str[i] = ch; } fseek(fp1,0l,SEEK_CUR);}
}
while (ch!=EOF); fclose(fp1);
fclose(fp2);
system("pause");
return 0;
}