Строки. Операции сравнения

   
На этом шаге мы рассмотрим особенности использования операции стравнения строк.

   
Для строк определены стандартные операторы сравнения. В качестве операндов могут использоваться как строки, так и С-строки:

std::string s1,s2;
.    .    .    .
s1 == s2       // Возвращает true, если s1 и s2 содержат одинаковые символы 
s1 < "hello"  // Проверяет, что s1 меньше С-строки "hello"

   
При сравнении строк операторами <, <=, > и >= символы сравниваются в лексикографическом порядке в соответствии с их текущими
трактовками. Например, все следующие условия равны true:

std::string("aaaa") < std::string("bbbb") 
std::string("aaaa") < std::string("abba") 
std::string("aaaa") < std::string("aaaaaa")

   
При помощи функций compare() можно сравнивать подстроки. Эти функции позволяют использовать более одного аргумента для
определения строк, поэтому подстрока может задаваться индексом и длиной. Помните, что функции compare() возвращают не логический
признак, а целочисленный код. Ноль является признаком совпадения строк; отрицательное значение указывает на то, что *this меньше
заданной строки, а положительное значение - что *this больше. Пример:

std::string s('abcd");
s.compare("abcd")       // Возвращает 0
s.compare("dcba")       // Возвращает значение <0 (s меньше)
s.compare("ab")         // Возвращает значение >0 (s больше)

s.compare(s)            // Возвращает 0 (s равно s)
s.compare(0,2,s,2,2)    // Возвращает значение <0 ("ab" меньше "cd")
s.compare(1,2,"bcx",2)  // Возвращает 0 ("bc" равно "bc")

   
Если сравнение должно производиться по другому критерию, вы можете определить этот критерий и воспользоваться алгоритмами сравнения
STL или же применить специальные трактовки символов, позволяющие сравнивать строки без учета регистра символов. Но так как строки
со специальным классом трактовок относятся к другому типу данных, они не могут комбинироваться с объектами типа string.

   
Со следующего шага мы начнем знакомиться со способами модификации строк.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий