strcmp
сравнивает строки путем сравнения отдельных символов слева направо, и он вернется, как только два символа будут различаться.Поскольку символ '1'
меньше символа '2'
, строка «100» будет считаться меньше строки «25».
Попробуйте этот код и введите «100» и «25»."
int main()
{
char toAge[4] = {0};
char age[4]={0};
scanf("%3s", age);
scanf("%3s", toAge);
// Using string compare
if (strcmp(age, toAge) < 0)
printf("\"%s\" is less than \"%s\"\n", age, toAge);
else if (strcmp(age, toAge) > 0)
printf("\"%s\" is greater than \"%s\"\n", age, toAge);
else
printf("\"%s\" is equal to \"%s\"\n", age, toAge);
// Using integer compare
if (atoi(age) < atoi(toAge))
printf("%s is less than %s\n", age, toAge);
else if (atoi(age) > atoi(toAge))
printf("%s is greater than %s\n", age, toAge);
else
printf("%s is equal to %s\n", age, toAge);
return 0;
}
Вывод:
"100" is less than "25"
100 is greater than 25
Как видите, функция atoi
может использоваться для получения ожидаемого результата.