题目描述
编写程序,输入一个主字符串和一个子字符串,统计主字符串中包含的连续给定的子字符串的个数;当子字符串在主字符串中多次连续出现时,输出最大的连续次数。例如,主字符串 “EFABCABCABCDABCDD”,子字符串 “ABC”,输出是3.
#include <stdio.h>
int main()
{
int flag=0;//f=0表示前面没有字串
int Max=0;
int count=0;
char sa[100]={'\0'};
char sb[10]={'\0'};
char *a=sa,*b=sb,*at;
gets(sa);
gets(sb);
while(*a!='\0')
{
at=a;
b=sb;
if(*b==*at)//子串的第一个字符与主串中的字符相等
{
while(*at!='\0')
{
if(*at==*b)
{
at++;
b++;
}
else break;
}
if(*b=='\0')//主字符串中含有子字符串
{
if(flag)//前面由子字符串,计数累加
count++;
else
count=1;//前面没有子字符串,从1开始计数
if(count > Max) Max=count;
flag=1;
a=at;
continue;
}
}
flag=0;
a++;
}
printf("%d\n",Max);
return 0;
}//main