题目描述
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
样例输入
I am a student
样例输入
student a am I
#include<iostream> #include<string> #include<stdlib.h> using namespace std; int main() { string str,str1; getline(cin,str); str1.assign(str.rbegin (),str.rend ()); int len=str.size(); char word[100][21]={'\0'}; int m=0,n=0; for(int i=0;i<len;i++) { if(isalpha(str1[i])) { word[m][n]=str1[i]; n++; } else { n=0; m++; } } string str2,str3; for(int i=0;i<m+1;i++) { str3=word[i]; str3.assign (str3.rbegin (),str3.rend ()); if(i==0) { str2.assign (str3); } else { str2.append (" "); str2.append (str3); } } cout<<str2; system("pause"); return 0; }