检查 std::vector 中的字符串是否包含C++中的子字符串

Check if strings in std::vector contain substring in C++

本文关键字:字符串 C++ 包含 std 检查 vector 是否      更新时间:2023-10-16

如果向量中的任何字符串包含子字符串,是否有一种有效的方法来执行函数?

类似的东西

if(vector.contains(strstr(currentVectorElement,"substring"))) {
    //do something
}
if(vector.contains(strstr(currentVectorElement,"substring2"))) {
    //do something else
}

我唯一能想到的就是遍历每个字符串并检查子字符串是否存在。

您可以将

std::find_if与lambda表达式一起使用

if(std::find_if(vec.begin(), vec.end(), [](const std::string& str) { return str.find("substring") != std::string::npos; }) != vec.end()) {
    ...
}

你需要的是std::search()

http://en.cppreference.com/w/cpp/algorithm/search