У меня есть этот код:
#include <stdio.h>
#include <string.h>
int main() {
char s1[50], s2[50];
printf("write s1:\n");
fgets(s1, sizeof(s1), stdin);
printf("s2:\n");
fgets(s2, sizeof(s2), stdin);
printf("The concatenation of the two strings: %s\n", strcat(s1, s2));
if( strcmp(s2, s1) < 0 ) {
printf("s2 is shorter than s1.\n");
} else if( strcmp(s2, s1) > 0 ) {
printf("s2 is longer than s1.\n");
} else {
printf("strings are equal.\n");
}
return 0;
}
Проблема в том, что когда я пишу две одинаковые строки, такие как abc или что-то еще, strcmp возвращает «s2 короче, чем s1».
Это нормальный результат или я что-то не так сделал? Если да, то где?
Или strcat делает строку не равной? Можно ли что-нибудь с этим сделать?
Спасибо