В настоящее время пытаюсь исправить код, который некоторое время не использовался.
У меня есть две переменные: int8_t foo[size]
и const char* const bar
.
Есть if, который проверяет if(0 != strcmp((char *)foo, bar))
В настоящее время это не удается, хотя printf("%s | %s", foo, bar)
возвращает две одинаковые строки. Я также пробовал strncmp
, который также терпит неудачу.
Изучив онлайн-исследования, я понимаю, что это, скорее всего, связано с завершением нулевых байтов, однако я не понимаю, как бы я решил/обошел это.
int8_t foo[size];
const char* const bar;
if(0 != strcmp((char *)foo, bar)){
fail
}
Ожидаемые результаты strcmp
возвращают 0, потому что обе строки одинаковы при печати.
Фактический результат: возврат не выполнен.
Фактические данные: 5352A565712345657567565785658956581
При запуске printf("Value of foo and bar: %s and %s", foo, bar)
обе переменные возвращают указанные выше данные.
char
. Если вам нужны небольшие целые числа, используйтеint8_t
илиuint8_t
(илиsigned char
илиunsigned char
). - person mlp   schedule 30.01.2019