// TestChar.cpp : Defines the entry point for the console application.
//求两个字符串的公共最大子字符串,如asdfsdkgf,kllsdkabc的最大子串为sdk
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * CalcMaxStr(const char* str1,const char* str2,char** Dest)
{
unsigned lench = 0;
int len = 0;
char* maxch = (char*)malloc(strlen(*Dest));
len = strlen(str1);
for(int i = 1;i <= len;i++)
{
for(int k = 0; k+1 < len; k++)
{
memset(*Dest,0,strlen(*Dest));
strncpy(*Dest,str1+k,i+1);
if (strstr(str2,*Dest) != NULL)
{
if (strlen(*Dest) >lench)
{
strcpy(maxch,*Dest);
lench = strlen(maxch);
}
}
}
}
memset(*Dest,0,strlen(*Dest));
strcpy(*Dest,maxch);
free(maxch);
maxch = NULL;
return *Dest;
}
int main(int argc, char* argv[])
{
char* str1 = "sfsabcdfd";
char* str2 = "sdfsdabcdsdfs";
char* str = new char(strlen(str1));
CalcMaxStr(str1,str2,&str);
printf("%s\n",str);
return 0;
}
求两个字符串的公共最大子字符串,如asdfsdkgf,kllsdkabc的最大子串为sdk
最新推荐文章于 2020-12-09 08:50:05 发布