当前位置: 代码迷 >> 综合 >> VS找出含有某个词的句子
  详细解决方案

VS找出含有某个词的句子

热度:22   发布时间:2024-01-29 17:50:56.0

使用目前所学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;
}

 

  相关解决方案