我的输入是"Hello World",我的目标输出是"olleH dlroW".
所以我的想法是将句子放入变量然后循环句子中的单词,反转它们中的每一个,最后将它们连接成一个新变量.
我的问题是:如何迭代句子的单词?
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
string reverseword(string word)
{
string rword;
int size = word.length();
while (size >= 0)
{
rword+= word[size];
size = size -1;
}
return rword;
}
int main()
{
string sentence;
cout<<"Enter the word/sentence to be reversed: ";
cin >> sentence;
string rsentence;
// for every word in the sentence do
{
rword = reverseword(word);
rsentence = rsentence + " " + rword;
}
cout<<rword;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在迭代句子中的单词之前,您需要从输入中读取一个句子.这条线
cin >> sentence;
Run Code Online (Sandbox Code Playgroud)
读取句子的第一个单词,而不是整个句子.getline改为使用:
std::getline(std::cin, sentence);
Run Code Online (Sandbox Code Playgroud)
随着sentence在内存中,您可以使用它遍历字的字istream_iterator,如下所示:
stringstream ss(sentence);
for (auto w = istream_iterator<string>(ss) ; w != istream_iterator<string>() ; w++) {
string &word = *w;
...
}
Run Code Online (Sandbox Code Playgroud)