C Строковые литералы (например, "100"
) сравнивают себя как указатель.
std::string
Сравнение сравнивает лексикографический контент.
Если вы хотите получить согласованные результаты:
using namespace std::string_literals;
std::cout << ("100"s > "035"s)<<"\n";
std::cout << ("100"s < "035"s)<<"\n";
std::string str = "100"s;
std::cout << str.compare("035");
"100"s
"эквивалентно" std::string("100")
.