我想知道如何在 C++ 中搜索字符串以查找字符串列表中 ANY 的第一个实例。一种全字版本std::string::find_first_of()
:“在字符串中搜索与其参数中指定的任何字符匹配的第一个字符”。
我想要的东西会在字符串中搜索与提供的列表/数组中的任何单词匹配的第一个单词。需要明确的是,我不想在数组中搜索字符串的实例。我想在一个字符串中搜索一个数组中的某个实例。
我的目标是能够取一个句子,并删除列表中的所有单词。例如,如果我给它列表{"the" "brown", "over"};
和句子"the quick brown fox jumped over the lazy dog"
,我希望它输出," quick fox jumped lazy dog"
。如果我愿意,我希望能够给它一个甚至 100 个单词的列表;我需要它是可扩展的。
我能想到的唯一解决方案是在我的文本块上循环使用std::find(stringArray[0])
,while
并保存找到该单词的索引,然后将所有这些放在另一个for
循环中并对数组中的每个单词执行此操作,保存每个单词的索引到一个巨大的列表中。然后可以选择对该列表进行数字排序,最后遍历并删除该列表中某个位置的每个单词。
我真的希望有一个功能或更简单的方法来做到这一点,因为我的解决方案似乎很困难而且很慢,特别是因为我需要在许多不同的字符串上多次使用它来遍历 50,000 个字符的所有句子文本块。任何更好的优化都将是首选。