Даже если строки содержат числа, они по-прежнему строки , и вам необходимо распечатать их в формате "%s"
:
printf("Compare between str1 and str2: %s, %s", string1, string2);
// ^^ ^^
// Note the format specifier being different
Что касается напечатанных "чисел", помните, что массивы распадаются на указатели на их первый элемент. Это десятичное значение тех указателей, которые вы печатаете.
Следует отметить, что использование несоответствующего спецификатора формата и аргумента (например, использование "%d"
для печати строки) приводит к неопределенному поведению .
Если вы хотите использовать фактические числа и сравнить их, например, с. <
или >
, вместо этого вы должны иметь числовой тип, как в
int number1 = 1;
int number2 = 2;
Затем вы можете распечатать их с помощью спецификатора формата "%d"
, так как он ожидает аргумент типа int
:
printf("Compare between number1 and number2: %d, %d", number1, number2);