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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ak47_1 中级黑马   /  2015-5-3 19:52  /  773 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题:找出多个字符串中最大公共字符串;

2 个回复

倒序浏览
void maxchild(char str[],char str1[])
{

char *q, *p;
int n=0, m=0;
        for(int i=0;i<strlen(str);i++){
                   for(int j=0;j<strlen(str1);j++){
                             m=0;
                              if(str[i]==str1[j]&&str1[j]!='\0'){
                                         for(int k=0;str[k+i]!='\0'&&str1[k+j]!='\0&&str[k+i]==str[k+j];k++'){
                                                  m++;
                                                  p=&str[i];//这里问题是 如在一个公共字符串中 为什么p 就是指向第一个字符的地址?P 不会随i++ 而变化吗?
                                         }
                                                  if(m>n){
                                                             q=p;
                                                             n=m;
                                                  }
                             }

                  }
        }
         if(n>0)
                    for(int i=0;i<n;i++){
                            printf("%c",*(q+i));
                    }else
                     printf("没有公共字符串");

}
回复 使用道具 举报
为什么不会是公共字符串的第二,三个?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马