#include<stdio.h>
int?main()
{
char?str1[100]={0},str2[100]={0};
printf("please?input?two?strings:\n");
gets(str1);//讀入字串
gets(str2);
char?*?p1=str1;//分別用來存str1和str2的當下比較位置
char?*?p2=str2;
int?max=0,num=0;//max存放比較後最長字串長度,num是這壹輪比較公***字串長度?
char?*?start;//存放最大串起始位置
while(*p1!='\0')//先是串1大循環{
p2=str2;//p2是串2首地址
while(*p2!='\0')
?{
?char?*?begin=p1;//begin是串1當前比較位置
?char?*?begin2=p2;//begin2是串2開始比較位置
?num=0;//比較前初始化為0
?while(*begin!='\0'?&&?*begin2!='\0')//壹輪新的比較
?{
if(*begin==*begin2)?//若相同,num++;
?{num++;begin++;begin2++;}
else?break;
?}
if(num>max)//若新比較出的字串更長,則替換max值和start內容{max=num;
?start=p1;}
?p2++;//串2右移1位
}p1++;//串1右移1位
} while(max--)?//輸出串 printf("%c",*start++);printf("\n");
}