判断字符串str包含多少个子字符串substr,例如str:thisis substr:is?
发布网友
发布时间:2023-07-15 08:34
我来回答
共2个回答
热心网友
时间:2024-12-05 17:42
1.可通过 strstr 函数,查找子字符串。找到后即非空,然后加上子字符串偏移,再进行查找没,直到最后返回为空。
2.char *strstr( const char *str1, const char *str2 );
功能:函数返回一个指针,它指向字符串str2
首次出现于字符串str1中的位置,如果没有找到,返回NULL。
#include <stdio.h>
#include <string.h>
// 从str1中查找str2的个数,并返回
int findChildCnt(char* str1, char* str2)
{
int len = strlen(str2);
int cnt = 0;
while (str1 = strstr(str1, str2)) // 如果查找到,则执行循环,否则为空退出循环
{
cnt++; // 统计次数
str1 += len; // 加上偏移量,即移除str2
}
return cnt;
}
int main()
{
char str1[100], str2[100];
printf("intput str1 :");
gets(str1);
printf("intput str2 :");
gets(str2);
printf("Child Cnt: %d\n", findChildCnt(str1, str2));
return 0;
}
热心网友
时间:2024-12-05 17:42
那你可以采用循环源字符串的方法进行计算包含子字符串的数量,循环源字符串,每一次取一个与目标子字符串的长度相等的字符串,如果取出来的字符串与目标子字符串相同,计次加1,以此类推。