#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>using namespace std;#include "Reverse_string.h" void main(){ string filename="Reverse_string.h",str; cin>>filename; ifstream infile(filename.c_str(),ios::in); // "filename.c_str()" instead of "filename",right! if(!infile) exit(1); while(infile>>str){ //exit when press "Ctrl+Z" int len=str.size(); string s=Convert(Ignore(str)); if(Reverse(s)==s) cout<<"True!"<<endl; else cout<<"False!"<<endl; }} /*把从文件中提取的长字符串以空格分开,然后分别存入vector中 vector<string> vs;while(str!=EOF){ infile>>str; vs.push_back(str);}*/

评论