A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
   
    char a[100],b[100];
    printf("请输入第一个字符串:");
    gets(a);
    printf("请输入第二个字符串:");
    gets(b);
    int i,j,k=0,x,y=0;
   
   
    for(i=0;i<strlen(a);i++){
        for (j=0; j<strlen(b); j++) {
            x=0;
            //当两个数组有相同的值的时候,坐标都后移判断后边的数值是否相同
            while (a[i+x]==b[j+x]&&a[i+x]!='0') {
                x++;
            }
            //判断当前的公共字符长度是否大于之前的长度,如果大于则重新存储最大公共字符的长度值和起始下标
            if(k<=x){
                k=x;
                y=i;
            }
            
            
        }
        
    }
    //从最大的公共字符处的起始下标处,打印最长的公共字符
    for(i=y;i<y+k;i++)
        printf("%c",a[i]);
   
   
   
   
   
    return 0;
}

2 个回复

倒序浏览
yue努力越幸运,签到
回复 使用道具 举报
是不是每个人的基础题都不一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马