单词倒排-栈、指针的运用

编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。

输入格式

输入为一个字符串(字符串长度至多为 100)。

输出格式

输出为按要求排序后的字符串。

样例输入

I am a student

样例输出

student a am I

#include <bits/stdc++.h>
using namespace std;
#include <stack>
void solve(char *p1,char *p2,stack<string>s)
{
    while(*p1!='\0')
    {
        p1++;
        if(*p1==' ')
        {
            *p1='\0';
            s.push(p2);
            *p1=' ';
            while(p2!=p1)p2++;
            p2++;
        }
        if(*p1=='\0')s.push(p2);
    }
    while(s.size())
    {
        cout<<s.top()<<" ";
        s.pop();
    }
}
int main(){
    stack<string>s;
    char a[100];
    cin.get(a,100);
    solve(a,a,s);
    return 0;
}

上一篇:volatile


下一篇:【STL】 C++中pair容器的用法