代码如下:
include <stdio.h>
void GetSub(char *str)
{
char *p = str;
char *q = NULL;
int len,max;
len = 1;//保存两个相同字符的相差的字符数
max = 1;//保存重复字符串的最大长度
int i;
char data[100] = {0};
while(*p)
{
len = 1;
q = p+1;
while(*p != *q && *q)//查找第一个与*p相同的字符
{
q++;
len++;
}
if(len > max)
{
for(i=1;i<len; i++)//判断字符串是否相同
{
if(*(p+i) != *(q+i))
break;
}
if(i == len)//保存字符串
{
max = len;
for(i=0 ;i<len ;i++)
data[i] = p[i];
data[i] = '\0';
}
}
p++;
}
puts(data);//打印连续重复且最长的字符串
}
int main()
{
char str[100];
printf("input string: ");
gets(str);
GetSub(str);
}