C中统计子串个数
来源:百度知道 编辑:UC知道 时间:2024/05/04 05:47:59
要求两个串均由键盘录入。
要求两个串均用字符型数组存放:char array[20], sub[10];
新手,实在想不出什么好算法,自己想了一个将主串分组的办法,执行老出错……
#include <stdio.h>
#include <string.h>
long GetTimes(char *pMain, char *pSub)
{
long times = 0;
long mainLen = strlen(pMain);
long subLen = strlen(pSub);
for(long i = 0; i <= mainLen - subLen; i ++)
{
int flag = 1;
for(long j = 0; j < subLen; j ++)
{
if(pMain[i + j] != pSub[j])
{
flag = 0;
break;
}
}
if(flag)
times ++;
}
return times;
}
int main()
{
//char str[20]="abcabc";
char* str="abceifgheiflaideifsh";//你给的字符串用20个大的数组放不下
char subStr[10]="eif";
printf("出