为了账号安全,请及时绑定邮箱和手机立即绑定

关于c++ 迭代器,使用while时陷入死循环的问题?

关于c++ 迭代器,使用while时陷入死循环的问题?

慕斯王 2018-06-17 17:34:21
#include <iostream>#include <string>using namespace std;int main() {    string s("some string");    if (s.begin() != s.end()) {        auto it = s.begin();        while (it != s.end() && !isspace(*it))             *it = toupper(*it);             it++;        cout << s << endl;     }    return 0; }在学习c++primer迭代器这一节时,要求是把上面程序的字符串s全部改为大写,书上用的是for循环,我试着使用while,但是编译通过了, 执行的时候不显示结果,ctrl+D 没反应, 只能ctrl+Z或ctrl+C强制结束。想问一下, 我的程序有是语法上的错误, 还是迭代不支持while谢谢
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

#include <iostream>#include <string>using namespace std;int main() {    string s("some string");    if (s.begin() != s.end()) {        auto it = s.begin();        while (it != s.end()) {
            *it = toupper(*it);
            it++;
        }        cout << s << endl;
    }    return 0;
}


查看完整回答
反对 回复 2018-07-20
  • 1 回答
  • 0 关注
  • 338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信