Использование реляционных операторов в строках в C / C ++ будет просто сравнивать адреса памяти строк. Очевидно, "11"
и "8"
занимают 2 разные области памяти, поэтому это может быть ложным, если только адрес, где хранится "11"
, не будет храниться по адресу, большему "8"
, но это случайно.
Имейте в виду, что вы можете использовать string::compare
, однако он сравнивает ASCII-код строк. Поскольку "1"
(код ASCII 49) меньше "8"
(код ASCII 56), оно все равно будет ложным. Вам необходимо использовать stoi
для преобразования строки в целое число, а затем сравнить целые числа.