我的解法只是很多解法的一种,因为这种解法比较方便理解,新手也可以看懂。
首先我们拿到一串字符,然后将他们全部反转:

然后我们从起始位置开始找空格,找到了就反转那一块地方,之后再继续找下一个空格。
#include#include #include using namespace std; int main() { string s1; getline(cin,s1); reverse(s1.begin(),s1.end()); int l = 0; int r = 0; while(s1[r] != '\0') { while(r < s1.size() && s1[r] != ' ') { r++; } reverse(s1.begin()+l,s1.begin()+r); l = r+1; r++; } cout< 别忘了每次要更新 l 也就是反转空间的左边下标的位置,不然很容易出现栈错误之类的。