题目要求:输入一个句子,要求将句子每个单词顺序反过来
例如:
输入:pig loves dog
输出:dog loves pig
思路:
写一个将单词反转的函数f,首先将整个输入反转变成god sevol gip,然后将每个单词用函数f反转,得到dog loves pig
代码实现:
#include<iostream>
#include<string>
using namespace std;
void jiaohuan(string &s) { int size = s.size(); for(int i=0;i<size/2;i++) { char tmp; tmp = s[i]; s[i] = s[size - i -1]; s[size - i - 1] = tmp; } } int main() { string A = "pig loves dog"; jiaohuan(A); string C; cout<<A<<endl; int flag = A.find(" "); int inx = 0; while(flag!= string::npos)//对除了最后一个单词进行操作 { string tmp; for(int i=inx;i<flag;i++) tmp = tmp + A[i]; jiaohuan(tmp); inx = flag+1; C = C + tmp + " "; flag = A.find(" ",flag + 1); } string tmp2;//这是为了最后一个单词 for(int j = inx;j<A.size();j++) tmp2 += A[j]; jiaohuan(tmp2); C += tmp2; cout<<C<<endl; }