对任意一篇英文文章,统计其中每个单词分别出现了多少次,并可替换指定的单词。
【功能要求】(1)英文文章以文件形式输入。(2)统计结果保存为文件。(3)对单词进行替换时,允许用户选择全部替换,或逐个替换。替换完成后,将文章存盘。1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int Num = 1000;//文章不同单词的最大数目 9 int num_word = 0;//单词的个数 10 vector array_s;//存放文章里面的单词 11 vector all_content;//存放文章所有的内容 12 struct Data{ 13 string data;//单词 14 int count;//单词在文章出现的次数 15 }; 16 17 Data WordNum[Num];//存放单词以及单词出现的次数 18 19 20 //判断是否是字母 21 //是字母返回true,否则返回false 22 bool IsLetter(char ch){ 23 if(((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z'))){ 24 return true; 25 }else return false; 26 } 27 28 //进行统计各个单词出现的次数 29 void analyse(ifstream &in) 30 { 31 int i; 32 bool flags;//标志,是否为新的单词 33 string s="";//初始字符串s为空 34 char ch;//字符 35 string temp;//字符串 36 37 while((in.get(ch)))//从文件内读取字符串 38 { 39 if(IsLetter(ch)){ //单词的处理 40 s=""; 41 while(IsLetter(ch))//如果当前字符是字母继续读取 42 { 43 s+=ch; 44 in.get(ch); 45 } 46 in.seekg(-1,ios::cur);//文件指针(光标)后退一个字节 47 array_s.push_back(s);//读到的单词存到array_s数组中 48 all_content.push_back(s);//读到的单词存到all_content数组中 49 50 flags = true; 51 for(i=0;i >str;155 out.open("D:/resultupdate.txt");//将某些关键词替换后的字符串存到文件中156 157 if(out.is_open())158 {159 for(i=0;i >str2;167 out<
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int Num = 1000;//文章不同单词的最大数目 9 int num_word = 0;//单词的个数 10 vector array_s;//存放文章里面的单词 11 vector all_content;//存放文章所有的内容 12 struct Data{ 13 string data;//单词 14 int count;//单词在文章出现的次数 15 }; 16 17 Data WordNum[Num];//存放单词以及单词出现的次数 18 19 20 //判断是否是字母 21 //是字母返回true,否则返回false 22 bool IsLetter(char ch){ 23 if(((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z'))){ 24 return true; 25 }else return false; 26 } 27 28 //进行统计各个单词出现的次数 29 void analyse(FILE *fp) 30 { 31 int i; 32 bool flags;//标志,是否为新的单词 33 string s="";//初始字符串s为空 34 char ch;//字符 35 string temp;//字符串 36 37 while((ch = fgetc(fp))!=EOF)//从文件内读取字符 38 { 39 40 if(IsLetter(ch)){ //单词的处理 41 s=""; 42 while(IsLetter(ch))//如果当前字符是字母继续读取 43 { 44 s+=ch; 45 ch = fgetc(fp); 46 } 47 fseek(fp,-1L,1); 48 // in.seekg(-1,ios::cur);//文件指针(光标)后退一个字节 49 array_s.push_back(s);//读到的单词存到array_s数组中 50 all_content.push_back(s);//读到的单词存到all_content数组中 51 52 flags = true; 53 for(i=0;i >str;167 if((fp=fopen("D:/resultupdate.txt","w+"))==NULL)//将某些关键词替换后的字符串存到文件中168 {169 printf("文件不存在\n");170 171 }else{172 for(i=0;i >str2;180 fprintf(fp,"%s",str2);//单词存入文件181 all_content[i]=str2;182 }else{183 fprintf(fp,"%s",all_content[i].c_str());//单词存入文件184 }185 }186 fclose(fp);187 printf("文章替换成功!\n\n");188 }189 }190 191 //string filelast="";192 193 //把原文件存放到字符串中194 for(i=0;i