strncpy:复制字符串的子串
strstr:在字符串中寻找子字符串
#include<stdio.h>
#include<string.h>
int t,n;
char ch[109][109];
void Strrev(char s[102])
{
char s1[102];
int i,k;
strcpy(s1,s);
k=0;
for(i=strlen(s)-1;i>=0;i--)
s[k++]=s1[i];
s[k]=0;
}
int searchmaxstring(char *source)
{
int a,b,i,j,flag;
char str1[109],str2[109];
a=strlen(source);b=strlen(source);
while(a>0)
{
for(i=0;i<=b-a;i++)
{
strncpy(str1,source+i,a);
strncpy(str2,source+i,a);
str1[a]=str2[a]='\0';
Strrev(str2);
flag=0;
for(j=0;j<n;j++)
{
if(strstr(ch[j],str1)==NULL&&strstr(ch[j],str2)==NULL)
{
flag=1;
break;
}
}
if(flag==0)return a;
}
a--;
}
return 0;
}
int main()
{
int i,m,s,l;
char min[109];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
m=100;
for(i=0;i<n;i++)
{
scanf("%s",ch[i]);
l=strlen(ch[i]);
if(l<m)
{
strcpy(min,ch[i]);
m=strlen(min);
}
}
s=searchmaxstring(min);
printf("%d\n",s);
}
return 0;
}