输入一个字符串,计算字符串中子串出现的次数
#include <stdio.h>
int main()
{
char s[40]; //存放主字符串
char s1[20]; //存放子串
char *p = s;
char *p1 = s1;
int n = 0; //统计个数
printf("enter a string:\n");
scanf("%s",s);
printf("enter a substring:\n");
scanf("%s",s1);
while(*p != '\0') //主串没结束进入循环
{
if(*p == *p1) //如果第一个相同进入下面的循环
{
while(*p == *p1 && *p1 != '\0')
{
p++;
p1++;
}
if(*p1 == '\0') //子串到结尾,一个相同的找完结束
{
n++;
p1 = s1;
}
}
else
{
p++;
}
}
printf("it has %d substring.\n",n);
return 0;
}
int main()
{
char s[40]; //存放主字符串
char s1[20]; //存放子串
char *p = s;
char *p1 = s1;
int n = 0; //统计个数
printf("enter a string:\n");
scanf("%s",s);
printf("enter a substring:\n");
scanf("%s",s1);
while(*p != '\0') //主串没结束进入循环
{
if(*p == *p1) //如果第一个相同进入下面的循环
{
while(*p == *p1 && *p1 != '\0')
{
p++;
p1++;
}
if(*p1 == '\0') //子串到结尾,一个相同的找完结束
{
n++;
p1 = s1;
}
}
else
{
p++;
}
}
printf("it has %d substring.\n",n);
return 0;
}