用c++编写一段代码,输入一个字符串和一个子串,输出子串在字符串中出现的次数
时间: 2024-05-11 17:16:36 浏览: 11
好的,我可以为您提供一段 C 代码来实现这个功能:
```
#include <stdio.h>
#include <string.h>
int countSubstring(char *str, char *sub) {
int count = 0;
char *ptr = strstr(str, sub);
while (ptr != NULL) {
count++;
ptr = strstr(ptr + 1, sub);
}
return count;
}
int main() {
char str[100];
char sub[100];
printf("请输入字符串:");
scanf("%s", str);
printf("请输入子串:");
scanf("%s", sub);
int count = countSubstring(str, sub);
printf("子串在字符串中出现的次数为:%d\n", count);
return 0;
}
```
以上代码中的 `countSubstring` 函数接受两个参数:一个字符串和一个子串,它会通过不断地调用 C 标准库中的 `strstr` 函数来定位子串在字符串中出现的位置,直到无法找到为止。在每次定位到子串之后,函数都会累加一个计数器。最终,它会返回该计数器的值,即子串在字符串中出现的次数。
请注意,在此过程中,`countSubstring` 函数没有修改原始的字符串或子串。如果您需要修改原始的字符串或子串,请使用 C 标准库中的字符串操作函数,例如 `strcpy`,`strcat` 等。