У меня есть два буфера символов, которые я пытаюсь сравнить их части. У меня странная проблема. у меня есть следующий код:
char buffer1[50], buffer2[60];
// Get buffer1 and buffer2 from the network by reading sockets
for(int i = 0; i < 20; i++)
{
if(buffer1[15+i] != buffer2[25+i])
{
printf("%c", buffer1[15+i]);
printf("%c", buffer2[25+i]);
printf("%02x", (unsigned char)buffer1[15+i]);
printf("%02x", (unsigned char)buffer2[25+i]);
break;
}
}
Приведенный выше код является упрощенной версией моего фактического кода, который я не копировал и не вставлял, потому что он слишком длинный. На всякий случай это может помочь, я получил эти два буфера по сети, читая сокеты.
Проблема в том, что разрывы цикла происходят, даже если оба буфера одинаковы. Чтобы проверить, что находится в буферах, я добавил два оператора печати внутри оператора if. И странная вещь в том, что операторы printf выводят одинаковое значение для% c и% 02x, но сравнение не удается и цикл прерывается.