描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
先来看错的(只能看一个空格,不能随心所欲的控制单词之间的空格)
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int main() {
string S;
while(cin >> S) {
reverse(S.begin(), S.end());
cout << S <<" ";
}
return 0;
}
再看对的
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <vector>
using namespace std;
int main() {
string input;
getline(cin, input);
vector<string> words;
size_t start = 0, end = input.find(' ');
while (end != string::npos) {
words.push_back(input.substr(start, end - start));
start = end + 1;
end = input.find(' ', start);
}
words.push_back(input.substr(start));
for (string &word : words) {
reverse(word.begin(), word.end());
}
for (size_t i = 0; i < words.size(); i++) {
cout << words[i];
if (i != words.size() - 1) {
cout << " ";
}
}
cout << endl;
return 0;
}
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
string input;
getline(cin, input);
vector<string> words;
size_t start = 0, end = input.find(' ');
while (end != string::npos) {
words.push_back(input.substr(start, end - start));
start = end + 1;
end = input.find(' ', start);
}
words.push_back(input.substr(start));
for (auto &word : words) {
reverse(word.begin(), word.end());
}
for (size_t i = 0; i < words.size(); ++i) {
cout << words[i];
if (i != words.size() - 1) {
cout << " ";
}
}
cout << endl;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string s;
int i, j, k=0;
getline(cin, s);
s = s + ' ';
for (i=0; i<=s.size(); i++){
if(s[i] == ' '){
for (j=i-1; j>=k; j--) cout << s[j];
cout << " ";
k = i+1;
}
}
return 0;
}