gpt4 book ai didi

c++ - 如何在 C++ 中查找字符串中出现的字符串?

转载 作者:IT老高 更新时间:2023-10-28 22:26:15 35 4
gpt4 key购买 nike

如何在 C++ 中查找字符串中出现的字符串?

这是场景。

string base_string = "BF;1;2;3;FF;10;20;30;BF;11;;22;33;FF;100;200;300;BF;110;;220;330;FF;1000;2000;3000";
string to_find_occurances_of = "BF";

最佳答案

int occurrences = 0;
string::size_type start = 0;

while ((start = base_string.find(to_find_occurrences_of, start)) != string::npos) {
++occurrences;
start += to_find_occurrences_of.length(); // see the note
}

string::find 获取要在调用对象中查找的字符串和(在此重载中)开始查找的字符位置,并返回字符串出现的位置,或 string::npos 如果找不到字符串。

变量 start 从 0(第一个字符)开始,在循环条件下,您使用 start 告诉 find 在哪里开始查找,然后将 find 的返回值分配给 start。增加发生次数;现在 start 保存了字符串的位置,您可以跳过 to_find_occurrences_of.length()1 个字符并重新开始查找。


1 drhirsch 指出,如果 to_find_occurrences_of 包含重复的字符序列,则执行 start += to_find_occurrences_of.length() 可能会跳过某些事件。例如,如果 base_string"ffff" 并且 to_find_occurrences_of"ff",那么只有 2 次出现如果您将 to_find_occurrences_of.length() 添加到 start,则计算在内。如果您想避免这种情况,请将 1 而不是 to_find_occurrences_of.length() 添加到 start,在该示例中,将计算 3 次而不是 2 次。

关于c++ - 如何在 C++ 中查找字符串中出现的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614139/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com