C++(四)—字符串、数字翻转3种⽅法
1、使⽤algorithm中的reverse函数,string类型字符建议使⽤。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str;
cin >> str;
reverse(str.begin(), d());
cout << str << endl;
return0;
}
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string str;
cin >> str;
//reverse(str.begin(), d());
//⾃⼰实现,交换对应位置字符。
int start = 0, end = str.size()-1;
while (start < end)
{
swap(str[start++], str[end--]);
}
cout << str << endl;
return0;
}
2、使⽤string.h中的strrev函数,char类型字符建议使⽤。
  C++中有函数strrev,功能是对字符串实现反转,但是要记住,strrev函数只对字符数组有效,对string类型是⽆效的。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s[]="hello";
strrev(s);
cout<<s<<endl;
return0;
}
3、翻转句⼦单词序列
  例如,“student. a am I”。后来才意识到,这家伙原来把句⼦单词的顺序翻转了,正确的句⼦应该是“I am a student.”。class Solution {
public:
string ReverseSentence(string str) {
pty())
return str;
int start = 0,end = str.size()-1;
reverse(str, start, end);
start = 0;
for(int i=0;i<str.size();++i)
{
if(str[i] == '')
{
reverse(str, start, i-1);
start = i+1;
}
}
reverse(str, start, str.size()-1);
return str;
}
void reverse(string &str, int start, int end)
{
数组类型字符串转数组
while(start < end)
swap(str[start++], str[end--]);
}
};
4、数字翻转
  123—>321,⾼位到地位,低位到⾼位。void reverse()
{
int n;
int res = 0;
cin >> n;
while (n)
{
res = res * 10 + n % 10;
n = n / 10;
}
cout << res << endl;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。