第三章作业
来源:互联网 发布:中国银行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;
}