1062 Text Reverse

来源:互联网 发布:手机版网站 知乎 编辑:程序博客网 时间:2024/05/21 09:10
#include<iostream>#include<string>#include<vector>using namespace std;int main(){int T;while (cin >> T){string s;cin.ignore();while (T--&&getline(cin, s)){string::iterator it = s.begin();int k = 0;for (int i = 0; i < s.size();++i){if (s[i]==' '){reverse(it+k, it+i);k = i+1;}if (i == s.size() - 1)reverse(it + k, s.end());}cout << s << endl;}}return 0;}

刚开始用的解引用来判断是否为空格,但是会产生迭代器无法解引用的错误,是因为循环体改变字符串本身,导致迭代器失效??存疑
while (T--&&getline(cin, s)){string::iterator it = s.begin();for (auto b = s.begin();; ++b){if (*b==‘ ’){reverse(it, b);it = b + 1;}if (b == s.end()){reverse(it, b);break;}}cout << s << endl;}


0 0
原创粉丝点击