#include <stdio.h>
#include <string.h>
int count_substring(char* str,char* sub);//sub为需要查找的子串,str为总串,返回一个count值
int main()
{
char total[50];//定义一个总串,含50个字符
char sub[10];//定义一个子串,含10个字符i
int num;//用于输出子串个数
printf("please enter a string(<50):\n");
fgets(total,50,stdin);//从键盘输入字符给total[]
printf("please the substring(<10) u want find :\n");
fgets(sub,10,stdin);
num=count_substring(total,sub);
printf("The number of the substring is :%d\n",num);
return 0;
}
int count_substring(char* str,char* sub)
{
int i=0;
int j=0;
int str_len = strlen(str) - 1;
int sub_len = strlen(sub) - 1;
int count = 0;
for ( i = 0 ; i < str_len - sub_len + 1 ;i++)//因为后面在查找时还要加上子串的长度,防止内存溢出
{
for ( j = 0; j < sub_len ; j++)
{
if (sub[j] != str[i+j])
{
break;
}
}
if ( j == sub_len )
{
count++;
}
}
return count;
}