用C语言统计字符串中一个字符串出现的次数
时间: 2024-12-31 20:19:12 浏览: 78
### C语言实现统计子字符串在目标字符串中出现次数的方法
为了实现在C语言中统计一个字符串(称为模式串)在另一个字符串(称为主串)中的出现次数,可以采用遍历匹配的方式。下面提供了一种基于双指针的思想来完成这一功能的方案。
#### 主要思路
定义两个指针分别指向主串和模式串的第一个字符位置,当两者相等时继续比较后续字符直至不相同或完全匹配上整个模式串为止;如果成功找到一次完整的匹配,则计数器加一并将主串指针回溯到上次开始尝试的位置之后一位重新启动新一轮搜索过程直到遍历结束[^1]。
#### 完整代码示例
```c
#include <stdio.h>
#include <string.h>
int countSubstring(const char *str, const char *substr) {
int count = 0;
size_t strLen = strlen(str);
size_t substrLen = strlen(substr);
if (substrLen == 0 || strLen < substrLen) return 0;
for (size_t i = 0; i <= strLen - substrLen; ++i) {
int j;
for (j = 0; j < substrLen; ++j) {
if (str[i + j] != substr[j]) break;
}
if (j == substrLen) { // 如果循环正常退出说明找到了匹配项
++count;
}
}
return count;
}
// 测试函数
void test() {
printf("%d\n", countSubstring("hello world hello", "hello")); // 输出应为2
}
```
此段代码实现了上述逻辑,并通过`test()`进行了简单验证。其中`countSubstring`接收两个参数分别为待查找的目标字符串以及想要定位的小片段即子串,返回值则代表后者在整个大文本里重复了多少次。
阅读全文
相关推荐


















