从两个字符串找到相同的字母,然后比较下一个字母是否相同,取相同数最多一段。
#include"stdio.h"
#include"string.h"

int fun(char* str_1, int len_1, char* str_2, int len_2) {
    int max_len = 0;
    int i, j, k;
    for (i = 0; i < len_1; i++) {
        for (j = 0; j < len_2; j++) {
            if (str_1[i] == str_2[j]) {
                for (k = 0; k < len_1 - i && k < len_2 - j; k++) {
                    if (str_1[i + k] != str_2[j + k]) {
                        break;
                    }

                    if (k + 1 > max_len)max_len = k + 1;
                }
            }
        }
    }
    printf("%d", max_len);
    return 0;
}

int main(void) {
    char str_1[151] = {0};
    char str_2[151] = {0};

    scanf("%s", str_1);
    scanf("%s", str_2);
    int len_1 = strlen(str_1);
    int len_2 = strlen(str_2);
    if (len_1 < len_2) {
        fun(str_1, len_1, str_2, len_2);
    } else {
        fun(str_2, len_2, str_1, len_1);
    }
    return 0;
}