代码目的是把迭代器第一个 string 类型元素的第一段不包括空格的字符全改为大写。
期望输出:SOME string oh
实际输出:SOME string oh
代码输出确实是正确的,但是总觉得代码里太多解引用(*it)写起来很繁琐,不知道大佬们怎么解决。如题。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> s{ "some string"," oh" };
for (auto it = s.begin(); it != s.end() && !it->empty(); ++it) {
if (it == s.begin()) { //想把(*it)改成字符串直接使用;
for (decltype((*it).size()) index = 0; index != (*it).size() && !isspace((*it)[index]); index++) {
(*it)[index] = toupper((*it)[index]);
}
}
cout << (*it) << " ";
}
return 0;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.