https://www.nowcoder.com/pat/2/problem/4075 1041 说反话

知识点:getline(cin,str)和cin的区别
&&:
1.getline(cin,str)的读取原理是将以‘/n’为结束符做为一完整读取的一行,'/n'会读。
2.cin不会读取'/n',将'/n'留在输入流。
**:如果在cin后用getline(cin,str)读取,为避免getline直接读取'/n'的错误,要在cin后加上

cin.ignore();

思路:
顺次扫描单词来拆分,注意' '(单词间的分割)和'/n'(句子结束时的换行符)。
然后倒序输出从句子中拆分的单词。

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int main()
{
    vector<string> v;
    string str;
    getline(cin,str);
    string ang = "";
    for(int i = 0; i < str.length(); i++)
    {
        if(str[i] == '\n')
            break;
        if(str[i] != ' ')
            ang += str[i];
        else
        {
            v.push_back(ang);
            ang = "";
        }
    }
    v.push_back(ang);
    for(int i = v.size() - 1; i >= 0; i--)
    {
        if(i != 0)
            cout << v[i] << " ";
        else
            cout << v[i];
    }
    return 0;
}