题目要求
输入一个英文句子, 词之间有1个或者若干个空格,句子以英文标点".“结尾。 要求颠倒该句子中的词语顺序,并且词之间有且只有一个空格,结尾仍然是”.",结尾的"."与前一个单词之间无空格。
输入描述:
I Love You.
输出:
You Love I.
基本思路:
本题较简单,将输入字符串存储为vector,随后反转输出,需要注意的是对空格的判定。
代码:
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int main() {
string str;
getline(cin, str);
vector<string> vs;
string tmp;
char t;
for (int i = 0; i<str.length(); i++) {
if (str[i]!=32&&str[i]!='.') {
t = str[i];
tmp += str[i];
}
else if(tmp != "") {
vs.push_back(tmp);
tmp = "";
}
}
string res;
for (int i = vs.size() - 1; i >= 0; i--) {
if (vs[i] == "")continue;
if (i != 0) {
res += vs[i] + ' ';
}
else {
res += vs[i] + '.';
}
}
cout << res << endl;
return 0;
}