Я использую strcmp
для сравнения двух строк.lhs
приходит из файлового потока через fgets
.rhs
создается сгенерированным циклом for как последовательность n-1
пробелов.
Пример
#include <string.h>
#include <stdio.h>
int main() {
size_t n = 10;
char rhs[n];
memset(rhs, ' ', n - 1); // Fill with spaces using memset()
rhs[n-1] = 0; // Add NUL terminator
printf("len=%zu\n", strlen(rhs));
char lhs[n];
FILE* file = fopen("test", "r");
fgets(lhs, sizeof(lhs), file);
printf("read=%s\n", lhs);
return 0;
}
При использовании gdb я найдучто у меня есть две строки, которые кажутся идентичными (для этого я использовал
print
GDB):
lhs
= " "
rhs
= " "
1024 *.Это должно вернуть 0
, указывающее, что строки идентичны, но вместо этого я получаю другое ненулевое значение.
Почему эти строки не считаются равными?