求一个字符串中连续出现次数最多的…
来源:互联网 发布: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