找出两字符串任意匹配的最长项.
#include <stdio.h>
#include <string.h>
char *str_match(char *s, char *t)
{
static char line[100], max_match[100];
int is, j, k, it, il, max = 0;
for (is = 0; is < strlen(s); is++){ /* index of s */
for (it = 0; s[it] != '\0'; it++){ /* index of t */
il = 0;
for (j = it, k = is; s[j] != '\0' && s[k] == t[j]; j++, k++) /* index in s,t, simultaneously */
line[il++] = s[k];
line[il] = '\0';
if (k > max){
max = k;
strcpy(max_match, line); /* max_match line */
}
}
}
return max_match;
}
int main()
{
char s[] = "00000000001101011001000101000001";
char t[] = "10001010010101100100010100000100";
printf("%s\n", str_match(s, t));
return 0;
}
//101011001000101000001