反转字符串
#include<iostream>
using namespace std;
#include<string>
void fanzhuan(string& s)
{
for (int i = 0,j=s.size()-1; i < s.size() / 2; i++,j--)
{
swap(s[i], s[j]);
}
cout << s;
}
int main()
{
string s;
cin >> s;
fanzhuan(s);
}
反转字符串II
#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
string fanzhuan(string s,int k)
{
for (int i = 0; i < s.size(); i += (k * 2))
{
if (i + k <= s.size())//这个得有等于号,这个就是相当于是在这个区间范围
{
reverse(s.begin() + i, s.begin() + i + k);
}
else
{
reverse(s.begin() + i, s.end());
}
}
return s;
}
int main()
{
string s;
cin >> s;
cout << fanzhuan(s, 2);
}
替换数字
#include<iostream>
using namespace std;
#include<string>
string charu(string s)
{
int num = 0;
for (int i = 0; i < s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
num++;
}
}
string n;
n.resize(s.size() + num * 3);
int sold = n.size() - 1;
int snew = s.size() - 1;
while (snew >= 0)
{
if (s[snew] >= '0' && s[snew] <= '9')
{
n[sold--] = 'n';
n[sold--] = 'm';
n[sold--] = '@';
}
else
{
n[sold--] = s[snew];
}
snew--;
}
return n;
}
int main()
{
string s;
cin >> s;
cout<<charu(s);
}
大家做题的时候一定要认真,别跟我一样,搞了半天,才发现自己整错了