Помимо функций std::string
, вы можете сравнить символов точно так же, как вы сравниваете целых чисел .Во-первых, проверьте таблицу ASCII ниже:
ASCII TABLE
Как видите, каждому символу соответствует некоторое десятичное число, и они пронумерованы в алфавитном порядке (a = 97, b = 98, c = 99 ...) , чтобы вы могли сравнивать их так же, как целые числа. Но обратите внимание, что , прописные и строчные буквы имеют разные соответствующие десятичные дроби.Таким образом, когда вы сделаете сравнение в вашей строке, чтобы проверить, отсортирована она или нет, сначала округлите все символы в строке, чтобы уменьшить их, так как заглавные буквы имеют больше маленьких соответствующих десятичных чисел, чем строчные буквы вТаблица ASCII.Итак, ваша функция должна быть такой:
bool is_string_sorted(std::string str){
for(int i = 0; i < str.size() - 1; i++){
str[i] = tolower(str[i]);
str[i+1] = tolower(str[i+1]);
if(str[i] > str[i+1]){
return false;
}
}
return true;
}