c语言求解统计子串个数
时间: 2024-11-21 20:30:53 浏览: 37
在 C 语言中,计算字符串中特定子串的出现次数通常涉及到遍历整个字符串的过程。下面是一个简单的算法来实现这个功能:
```c
#include <stdio.h>
#include <string.h>
int count_substring(const char* str, const char* sub) {
int len_sub = strlen(sub);
int len_str = strlen(str);
int count = 0;
for (int i = 0; i <= len_str - len_sub; ++i) {
if (strncmp(&str[i], sub, len_sub) == 0) { // 使用 strncmp 避免缓冲区溢出
count++;
}
}
return count;
}
int main() {
char str[] = "Hello, world! This is a test string.";
char sub[] = "is";
printf("Substring '%s' appears %d times in the given string.\n", sub, count_substring(str, sub));
return 0;
}
```
在这个例子中,`count_substring` 函数接收两个参数,一个是主字符串 `str`,另一个是要查找的子字符串 `sub`。它通过一个循环遍历 `str`,每次检查当前位置及其后的字符是否匹配 `sub`,如果匹配就增加计数器 `count`。
阅读全文
相关推荐


















