21xrx.com
2024-12-22 23:04:53 Sunday
登录
文章检索 我的文章 写文章
C++中字符串出现的次数
2023-07-05 08:08:10 深夜i     --     --
C++ 字符串 出现次数

在C++编程语言中,字符串是一个非常常见的数据类型,我们可以在很多场景下使用它。在实际开发中,有时候我们需要统计一个字符串中某个子字符串出现的次数。那么在C++中如何进行这样的操作呢?

首先,我们需要了解一下字符串的基本操作。在C++中,我们可以使用STL中的string类型来表示一个字符串。string类有很多实用的函数,例如length()可以用来获取字符串的长度,substr()可以用来截取子字符串等等。

而统计一个字符串中子字符串出现的次数,我们需要使用到string类中的find函数。find函数可以在一个字符串中查找指定的子字符串,并返回第一次出现的位置。如果没有找到,返回string::npos。

我们可以利用这个函数来统计子字符串出现的次数,具体的做法如下:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string s = "hello world, hello world, hello";

  string sub = "hello";

  int count = 0;

  size_t pos = s.find(sub);

  while(pos != string::npos) {

    count++;

    pos = s.find(sub, pos + 1);

  }

  cout << "count = " << count << endl;

  return 0;

}

这段代码演示了如何统计字符串s中子字符串sub出现的次数。我们使用了一个while循环,每次查找到子字符串的位置后,count自增1,并继续在剩余的字符串中查找子字符串,直到找不到为止。

这种方法的时间复杂度是O(nk),其中n是主字符串的长度,k是子字符串的长度。在实践中,可以通过优化来降低时间复杂度,例如使用KMP算法等。

总结一下,C++中统计字符串中子字符串出现次数的方法,可以利用string类中的find函数来实现。这是一种简单而有效的方法,可以在实际开发中得到广泛的应用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复