翻转一个句子中的单词 比如输入 this is a test 输出 test a is this 输入foobar 输出foobar
1 /*
2 本程序说明:
3
4 翻转一个句子中的单词 比如输入 this is a test 输出 test a is this 输入foobar 输出foobar
5
6 思路:先翻转整个句子,再针对每一个单词翻转之
7
8 */
9 #include <iostream>
10 #include <string>
11 #include <algorithm>
12 using namespace std;
13
14 void reverse_word(string& sentence)
15 {
16 reverse(sentence.begin(),sentence.end());
17
18 string::iterator index_start = sentence.begin();
19 string::iterator index_end = sentence.begin();
20 for(string::iterator it=sentence.begin();it<sentence.end();++it)
21 {
22 if(' '==*it)
23 {
24 index_end=it;
25 reverse(index_start,index_end);
26 index_start=++it;
27 }
28 }
29 reverse(index_start,sentence.end());//翻转最后一个单词
30 }
31
32 int main()
33 {
34 string sentence;
35 while(getline(cin,sentence))
36 {
37 reverse_word(sentence);
38 cout<<sentence<<endl;
39 }
40 return 0;
41 }
『注:本文来自博客园“小溪的博客”,若非声明均为原创内容,请勿用于商业用途,转载请注明出处http://www.cnblogs.com/xiaoxi666/』