我想知道如何知道循环中std :: string的结束?
例如:
while(string.eof()) {}
记住它与std :: string
有关谢谢大家。
答案 0 :(得分:8)
您可以循环遍历标准库容器上的字符串:
for (auto c : s)
{
// do something with c
}
或
for (auto it = s.begin(), end = s.end(); it != end; ++it)
{
// do something with it
}
其中s
是字符串。
答案 1 :(得分:1)
你可以使用迭代器
string str="abcd";
string::iterator it=str.rbegin();//iterator pointing on d
如果你想在你可以做的最后一个角色之前做一些事情
for (string::iterator it2=str.begin(); it"!=str.rbegin();++it){
cout<<"Inside the string but not the last character\n";
}
答案 2 :(得分:1)
“我不想与字符串交互,只想要一个循环 字符串的结尾没有来。“
字符串实际上是一个容器(特定数组),而不是文件。它不支持任何状态,也没有eof
之类的任何方法。所以你不能这样做。
如果您有通常的数组char buf[SZ];
那么'数组的末尾不会'到来?
懵了。数组索引可以指向最后一个元素,上面显示的字符串迭代器也是如此。