题目描述:
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
输入描述:
输入一行以空格来分隔的句子
输出描述:
输出句子的逆序
示例:
输入:
I am a student
输出:
student a am I
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
string s2[100];
getline(cin,s);
string s3="";
int a=0;
for(int i=0;i<s.length();i++){
if(s[i]!=' '){
s3.append(1,s[i]); // 将1个s[i]字符添加到字符串s3中
}else{
if(s3!=""){
s2[a++]=s3;
s3="";
}
}
}
if(s[s.length()-1]!=' '){
// 如果s不是以空格结尾
s2[a++]=s3;
}
for(int i=a-1;i>=0;i--){
cout<<s2[i]<<" ";
}
cout<<endl;
return 0;
}