求一个字符串中连续出现次数最多的…

来源:互联网 发布:java里的goto 编辑:程序博客网 时间:2024/05/18 07:40
//求一个字符串中连续出现次数最多的子串,//例如:abcbcbcabc,这个串中连续出出次数最多的子串是bc, 它出现了3次。#include<stdio.h>#include<string.h>int main(){   char ch[100];   while(gets(ch))   {      int i,j,k,max=0,flag=1;      char sh[51];//放置子串      for(j=1;j<strlen(ch);j++)//子串的长度      {         for(i=0;i<strlen(ch);i++)//         {             if(strncmp(&ch[i],&ch[i+j],j)==0)             {                flag++;                for(k=i+2*j;k<strlen(ch);k=k+j)//检查该子串与下一同长度的子串是否相同                {                   if(strncmp(&ch[i],&ch[k],j)==0)                       flag++;                   else                       break;                }                if(max<flag)//最大、易主                {                   max=flag;                   strncpy(sh,&ch[i],j);                   sh[j]='\0';                }                flag=1;             }         }      }      if(max==0)//字符串由单个字符构成      {         max=1;         sh[0]=ch[0];         sh[1]='\0';      }      printf("%d %s\n",max,sh);   }   return 0;}//c语言初学者伤不起啊//http://blog.csdn.net/huangkangying/article/details/6443302

原创粉丝点击