#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謝謝
關于c++ 迭代器,使用while時陷入死循環的問題?
慕斯王
2018-06-17 17:34:21
