PTA 说反话-加强版(20 分)(字符串处理)

说反话-加强版(20 分)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
stack<string>q;
    char a[500005];
int main()
{

    gets(a);
    int l=strlen(a);
    string s="";
   for(int i=0;i<l;i++)
   {
       if(a[i]==' '&&s!="")
       {
           q.push(s);
           s="";
       }
       else if(a[i]!=' ')
           s=s+a[i];
   }
   if(s!="") q.push(s);
   while(!q.empty ())
   {
       cout<<q.top();
       q.pop();
       if(q.size ()!=0)
           cout<<" ";
   }
   return 0;
}
 
原文地址:https://www.cnblogs.com/caiyishuai/p/8544387.html