C语言中统计一个字符串中子串出现的次数
时间: 2023-11-14 12:07:17 浏览: 161
可以使用循环和字符串比较的方法来统计一个字符串中子串出现的次数。具体步骤如下:
1. 通过 fgets 函数或者 scanf 函数获取待处理的字符串和子串。
2. 定义一个计数器变量 count,初值为 0。
3. 使用循环遍历整个字符串,每次取出与子串长度相等的子串,并与子串进行比较,若相等,则计数器 count 加 1。
4. 循环结束后,count 即为子串在字符串中出现的次数。
下面是一份示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], substr[100];
int count = 0, len1, len2, i, j;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
printf("请输入一个子串:");
fgets(substr, sizeof(substr), stdin);
len1 = strlen(str) - 1; // 减去换行符
len2 = strlen(substr) - 1; // 减去换行符
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str[i+j] != substr[j]) {
break;
}
}
if (j == len2) { // 子串匹配成功
count++;
}
}
printf("子串在字符串中出现的次数为:%d\n", count);
return 0;
}
```
注意,在比较字符串时,可以使用 strncmp 函数代替循环比较字符串的每个字符,更加简洁高效。例如:
```c
if (strncmp(str+i, substr, len2) == 0) {
count++;
}
```
阅读全文