正文

replace文件中字符串【修改1】2009-08-25 11:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/shao/47084.html

分享到:

//Reverse_string.h   #ifndef REVERSE_STRING_H#define REVERSE_STRING_H #include<string> // #include<cstring>  will cause error! string   Reverse(string   str)   {     string   S;     int   n=str.size();     while(n>0)     {       n--;       S+=str[n];     }     return   S;   } string Convert(string str){  int n=str.size();  while(n>0)     {       n--;    if(str[n]>=65&&str[n]<=90) str[n]+=32;  //convert capital letter into small letter,in order to ignore the form     //str[n]=(str[n]>90? str[n]+32:str[n]);  }  return str;} string Ignore(string str){ int n=str.size(); string s; for(int i=0;i<n;i++) {  if((str[n]>=65&&str[n]<=90)||(str[n]>=97&&str[n]<=122))   s+=str[i]; } return s;} #endif   //////////////////////////////// //main(): #include<iostream>#include<fstream>#include<vector>#include <stdio.h> using namespace std;#include "Reverse_string.h"    void main(){ vector<string> vs; string str; char* ch="0"; char* filename="Reverse_string.h"; cin>>filename; /* ifstream infile(filename.c_str(),ios::in); // "filename.c_str()"  instead of "filename",right! //如果你要用C中的fopen打开文件,那你可以用feof()判断   if(!infile)  exit(1);    */ FILE* infile=fopen(filename,"r");  while(!feof(infile)){  fgets(ch,1000,infile); } int len=sizeof(ch); for(int i=0;i<len;i++) {  if(*(ch+i)!=32)  //Intervals characters with spaces   str+=*(ch+i);  else   vs.push_back(str); } // read from vector and judge: vector<string>::iterator vi; for(vi=vs.begin();vi!=vs.end();vi++) {  string s=Convert(Ignore(str));  if(Reverse(s)==s)      cout<<str<<endl;     else    cout<<"There is no palindrome!"<<endl; }} /*   int len=str.size();    把从文件中提取的长字符串以空格分开,然后分别存入vector中vector<string> vs;while(str!=EOF){ infile>>str; vs.push_back(str);}*/

阅读(1185) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册