文章目录
- reverse用法
- 1.reverse函数反转string
- 2.reverse函数反转字符数组
- 2.自定义reverse函数反转任意类型数组
- 例子:
reverse用法
1.reverse函数反转string
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;int main() {string N;cin>>N;reverse(N.begin(), N.end());cout<<N<<endl;
}
2.reverse函数反转字符数组
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main() {char a[101];cin.getline(a,sizeof(a));int m=strlen(a);reverse(a,a+m);puts(a);
}
2.自定义reverse函数反转任意类型数组
这里我自己写了一个reverse函数,调用的时候reverse1(a,n1,n2);意思就是反转数组a在[a[n1],a[n2]]之间的元素,并且修改数组。
如果你数组类型是int类型,那么你就把typedef char elemtype;中的char改成int,同理,其他类型改成相应类型即可。
#include<iostream>
using namespace std;
typedef char elemtype;
void reverse1(elemtype *a,int i,int j){elemtype c;while(i<j){c=a[i];a[i]=a[j];a[j]=c;i++;j--;}
}
int main(){elemtype a[100];int n,n1,n2;cin>>n>>n1>>n2;for(int i=0;i<n;++i){cin>>a[i];}reverse1(a,n1,n2);for(int i=0;i<n;++i){cout<<a[i]<<' ';}return 0;
}
//5
//1 3
//1 2 3 4 5
//1 4 3 2 5
//5
//1 3
//a b c d e
//a d c b e
例子:
题目描述
小明终于等来了好朋友的来信,但打开来信就傻眼了,居然看不懂,原来好朋友把信中的每个单词都翻转了顺序,例如“Happy”在朋友的信里变成了“yppaH”。请你编写程序帮助小明还原来信内容吧。
输入
输入一个字符串,以回车结束。该字符串长度不超过100,包含多个单词,单词之间有一个或多个空格。
输出
输出一行,即单词翻转后的字符串,注意每对单词之间的空格数量保持不变。
样例输入
yppaH wen raey
样例输出
Happy new year
##分析与解答:
1.遇到空格直接输出
2.遇到字符,把单词存入一个数组里,反转后输出这个单词
#include<iostream>
#include<sstream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;int main(){char a[10001];char b[10001];cin.getline(a,sizeof(a));int m=strlen(a) ;for(int i=0;i<m;++i){if(a[i]==' ') cout<<' ';else {memset(b,0,sizeof(b));int k=0;while(a[i]!=' '&&i<m){b[k]=a[i];k++;i++;}i--;reverse(b,b+k);cout<<b;}} }