char* reverse(char s[]){
int i, j;
char t;
for(i = 0, j = strlen(s) - 1; i < j; i++, j--){
t = s[i];
s[i] = s[j];
s[j] = t;
}
return s;
}
int myPrefix (char s1 [], char s2 []) {
int i;
int comp = 0;
for(i = 0; s1[i] != '\0' && s2[i] != '\0'; i++){
if(s1[i] != s2[i])
return comp;
else
comp++;
}
return comp;
}
int mySuffix (char s1 [], char s2 []) {
return myPrefix(reverse(s1), reverse(s2));
}
Я решаю некоторые проблемы с кодировкой, предоставляемые моим Uni, но я застрял с этим. Я должен создать функцию, которая сравнивает 2 строки и возвращает самый большой общий суффикс.
Когда я компилирую и запускаю в кодовой таблице, я получаю ошибку ошибки сегментации, однако код отлично работает в Clion.
Почему это происходит?
Редактировать: Некоторые из вас отметили, что я не предоставил код, который вызывает функцию. Это потому, что у меня нет доступа к нему.
Это проблема в кодовой доске
Редактировать 2: Я получил это работает. Как некоторые из вас сказали, мне, вероятно, не разрешено изменять строки. Спасибо за вашу помощь.
int mySuffix (char s1 [], char s2 []){
int i = strlen(s1) - 1;
int j = strlen(s2) - 1;
int count = 0;
for(; s1[i] == s2[j]; i--, j--){
count++;
}
return count;
}