查找一个字符串中所含一个数组的个数
时间: 2023-04-06 13:01:57 浏览: 65
可以使用循环和字符串匹配的方法来查找一个字符串中所含一个数组的个数。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
int count(char *str, char *arr[], int n) {
int cnt = 0;
for (int i = 0; i < n; i++) {
char *p = str;
while ((p = strstr(p, arr[i])) != NULL) {
cnt++;
p += strlen(arr[i]);
}
}
return cnt;
}
int main() {
char str[] = "hello world, this is a test string";
char *arr[] = {"hello", "world", "test"};
int n = sizeof(arr) / sizeof(arr[0]);
int cnt = count(str, arr, n);
printf("The count is %d\n", cnt);
return 0;
}
```
这段代码中,count 函数接受一个字符串 str,一个字符串数组 arr,和数组的长度 n,返回 str 中包含 arr 中所有字符串的个数。函数中使用了两层循环,外层循环遍历数组 arr,内层循环使用 strstr 函数查找字符串 str 中是否包含数组中的字符串,如果找到了就将计数器 cnt 加一,并将指针 p 移动到下一个位置继续查找。最后返回计数器的值即可。