编写一个函数,其功能是统计一个子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"this is a string",子字符串为"is",则应输出2。编写主函数,输入输出在主函数中进行。代码并详细解释每一步
时间: 2023-04-03 15:04:10 浏览: 76
C语言编程-编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数;
5星 · 资源好评率100%
好的,我可以回答这个问题。以下是函数的代码和解释:
```c
#include <stdio.h>
#include <string.h>
int countSubstring(char *str, char *substr) {
int count = 0;
char *pos = str;
while ((pos = strstr(pos, substr)) != NULL) {
count++;
pos += strlen(substr);
}
return count;
}
int main() {
char str[100], substr[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
printf("请输入一个子字符串:");
fgets(substr, 100, stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉字符串末尾的换行符
substr[strcspn(substr, "\n")] = '\0';
int count = countSubstring(str, substr);
printf("子字符串在字符串中出现的次数为:%d\n", count);
return 0;
}
```
这个函数的名字是 `countSubstring`,它接受两个参数:一个字符串 `str` 和一个子字符串 `substr`,返回子字符串在字符串中出现的次数。它的实现方法是使用 `strstr` 函数在字符串中查找子字符串,如果找到了就计数并将指针移动到下一个位置继续查找,直到找不到为止。
在主函数中,我们先用 `fgets` 函数从标准输入中读取字符串和子字符串,然后用 `strcspn` 函数去掉字符串末尾的换行符。最后调用 `countSubstring` 函数统计子字符串在字符串中出现的次数,并输出结果。
希望这个回答能够帮到你!
阅读全文