C++ 字符串迭代器 "find first of"

标签 c++ string iterator

字符串迭代器中是否有类似 find_first_of on string 的方法? 像这样的东西:

string::iterator it;
string str("  h asdasf ^& saafa");
it = FIND_FIRST_OF("&az^");
std::cout << *it << std::endl;

结果:

a

最佳答案

你可以间接地做到这一点

auto pos = str.find_first_of("&az^");

然后推进迭代器

if(pos != std::string::npos) // thanks to @Mike Seymour
    std::advance(it, pos);

我猜你也可以用 lambda 做一些std::find,但上面的代码确实更简单和简洁。

关于C++ 字符串迭代器 "find first of",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173767/

相关文章:

swift - 字节字符串作为 Swift 4 中的数据

c++ - TrueType 字体缩放会导致文本模糊?

c++ - Qt 无法将目标移动到线程

c++ - 具有 const 数据成员的类的 std::move 和右值赋值运算符

java - 如何将字符串转换为JSONObject?

javascript - 使用多个三元运算符替换字符串的多个字符

c++ - 编译非常简单的 boost::spirit 语法时出错

c++ - c++ 中没有 std::tuple 的 std::iterator 有什么原因吗?

c++ - 运算符重载和迭代器混淆

`std::vector<T>::iterator` 模板函数的 c++ 正确语法