第三章作业

来源:互联网 发布:中国银行mac企业网银 编辑:程序博客网 时间:2024/05/01 11:28

1.逆转字符串

#include <string>
#include <iterator>
#include <iostream>
using namespace std;

int main()
{
 string s;
 cin>>s;
 string::reverse_iterator r_iter;
 for(r_iter=s.rbegin();r_iter!=s.rend();++r_iter)
 {
  cout<<*r_iter;
 }
}

2.检查是否为回文

#include <string>
#include <iterator>
#include <iostream>
using namespace std;
int f(string s)
{
  string s1;
 string::reverse_iterator r_iter;
 for(r_iter=s.rbegin();r_iter!=s.rend();++r_iter)
  s1+= *r_iter;
 if(s1==s)
  return 1;
 else return 0;
 
 
}
int main()
{
 string s;
 cin>>s;
 if(f(s))
  cout<<"huiwen"<<endl;
 else
  cout<<"not huiwen "<<endl;
}

3.忽略大小写,检查是否为回文

#include <string>

#include <iostream>
using namespace std;
int main()
{
 string s,s1;cin>>s;cin>>s1;
string upper(s);
string upper1(s1);
for(size_t i=0;i<s.size();i++)
upper[i]=toupper(upper[i]);
for(size_t i=0;i<s1.size();i++)
upper1[i]=toupper(upper[i]);
 if(upper==upper1) cout<<"same"<<endl;
 else cout<<"different"<<endl;
}

4.忽略标点符号和空格 ,检查是否为回文

#include<iostream>
#include <fstream>
#include<string>
using namespace std;
string& f(string& s,string& s1)
{
 size_t i=s.find(s1);
 if(i!=s::npos)
 {
  s.insert(i,'*');
  s.insert(i+s1.size(),'*');
 }/
}
int main()
{
  ifstream in("1.txt");
  string str,s1;
 while(in>>str)//去掉空格和标点符号
 {
 string caps(",./'/"");
 string::size_type pos = 0;
 while ((pos = str.find_first_of(caps, pos)) != string::npos)
 {
  str.erase(pos, 1);
 }
  s1+=str;
 }
 cout<<s1;
 f(s1);
 return 0;
}