Предполагая, что вы хотите перекрытия с тем же индексом в каждой строке, как в вашем примере:
int overlap(const char *s1, const char *s2){
int length = 0;
int i = 0;
while (s1[i] && s2[i] && s1[i] != s2[i])
i++;
while (s1[i] && s2[i] && s1[i] == s2[i]) {
i++;
length++;
}
return length;
}
поможет, хотя и не очень элегантно. Он найдет длину первого перекрытия с тем же смещением.
Так что для abcdefgh90
и 1234efg890
он вернет 3.
Если вам нужно общее количество совпадающих символов, попробуйте:
int overlap(const char *s1, const char *s2){
int length = 0;
int i = 0;
while (s1[i] && s2[i]) {
if (s1[i] == s2[i]) {
length++;
}
i++;
}
return length;
}