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;
}

京公网安备 11010502036488号