Chinaunix首页 | 论坛 | 博客
  • 博客访问: 290004
  • 博文数量: 95
  • 博客积分: 618
  • 博客等级: 中士
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-28 13:39
文章分类

全部博文(95)

文章存档

2015年(65)

2013年(1)

2012年(10)

2011年(19)

分类: C/C++

2011-11-28 21:37:27

#include
#include
#include
/*
查找最大公共子串
*/
char *maxsubstr(char *A,char *B)
{
 char *aptr,*bptr,*start_ptr;
 int count=0,sublen=0;
 char *substr;
 
 for (int i=0;A[i]!='\0';i )
 {
  for (int j=0;B[j]!='\0';j )
  {
   if (A[i]==B[j])
   {
    aptr = &A[i];
    bptr = &B[j];
    while (*aptr!='\0'&&*bptr!='\0')
    {
     
     if (* aptr!=* bptr)
     {
      count=aptr-&A[i];
      break;
      
     }
    }
    if (sublen    {
     sublen=count;
     start_ptr=&A[i];
    }
   }
  }
 }
 substr = (char *)malloc(sizeof(char)*sublen 1);
 substr[sublen]='\0';
 strncpy(substr,start_ptr,sublen);
 return substr;
}
int main()
{
 char A[]="a***sdfgsdsfff";
 char B[]="asdesdfgsxsfff";
 char *substr=maxsubstr(A,B);
 printf("max sublen is %d ,max substr is %s\n",strlen(substr),substr);
 return 0;
}
阅读(1556) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~