C 语言中使用函数查找子字符串的出现次数

2024年8月28日 | 阅读 4 分钟

此软件在接收字符串和子字符串作为输入后,计算子字符串在字符串中出现的次数。让我们看一个例子

解决方案是

  • 将字符串和子字符串作为输入。
  • 首先在字符串中查找子字符串。
  • 如果存在,则计算其出现的实例。

以下是用于计算字符串中子字符串出现次数的 C 程序的源代码。在 Linux 机器上,该 C 程序已成功构建并执行。下面还给出了应用程序的输出。

示例

输出

enter a string : prrrogram c prrrogramming
enter a substring : rr
rr occurs 2 times in prrrogram c prrrogramming
..............................................
Process executed in 2.22 seconds
Press any key to continue.

说明

  • 将字符串和子字符串作为输入,并将其放置在相应的 str 和 sub 字段中。
  • 使用 strlen 函数确定两个字符串的长度。
  • 使用 for 循环确定子字符串是否存在。如果存在,则使用 count 变量计算其出现的次数。
  • 输出变量的数量。

使用函数

输出

enter a string : If life were predictable it would cease to be life and be without flavor
enter substring : be
Substring occurrence count is : 2
..............................................
Process executed in 1.22 seconds
Press any key to continue.

说明

我们使用 strstr() 方法,而不是创建我们自己的内部循环来确定子字符串是否从外部循环中的特定位置匹配。strstr() 方法返回第一个匹配字符的指针。如果指针等于外部循环初始字符的指针,则计数器增加。借助 strcmp() 方法,我们可以实现相同的目标。strchr 函数给出字符串中每个字符的第一次出现。

strrchr 函数返回字符串中最后一次出现的字符。如果未检测到该字符,它们将返回 NULL 指针而不是字符指针。让我们创建一个程序,使用这些函数输出字符串中每个小写字符的第一个和最后一个索引。

strchr 和 strrchr 都返回一个指向检测到所需字符出现位置的字符的指针。假设要搜索的字符是“b”,要搜索的字符串是“abcd”。然后返回指向字符串中字符“b”的指针。如果不存在该字符,则返回 NULL。