ОПЕРАЦИИ ПОИСКА
СРАВНЕНИЕ СТРОК
Например.
string s("МАМА МЫЛА "), str("МАМА МЫЛА РАМУ");
s.append(str, 10,4); // добавляет к строке s 4 символа строки str, начиная с позиции 11.
cout << s<< " \n";
s.assign (str, 5,9); // присваивает строке s 9-символов строки str, начиная с позиции 6.
cout << s<< " \n";
Функции-члены assign() и append() возможно использовать без параметров pos и n
s.append(str) - добавляет в конец строки строку str. Аналогично записи s+=str;
3. Поменять местами содержимое двух строк типа string позволяет функция swap():
s.swap(str)меняет содержимое s и str местами.
Сравнить содержимое двух строк позволяет функция compare() :
s.compare(str)- сравнивает строку s со строкой str и возвращает 0 в случае совпадения, 1 - если больше, -1 – если меньше. Возможно задавать начальную позицию pos и число символов для сравнения n(s.compare(pos, n, str)).
Функция-членfind()определяет первое появление строки, массива символов или символа, переданной ей в качестве первого аргумента, в текущей строке.
s.find(str, pos)- ищет строку str в строке s, начиная с заданной позицииpos(необязательный параметр). Если первое вхождение строки найдено, функция возвращает позицию первого символа в текущей строке, с которой начинается совпадение.
Функция-членrfind()аналогична, но выполняет сканирование исходной строки справа налево
string s1("mississippi");
cout <<s1.find("ss") << " \n";
cout <<s1.find("ss",4) << " \n";
cout <<s1.rfind("si") << " \n";
Функции find_first_of(), find_last_of(), find_first_not_of(), find_ last_not_of()выполняют аналогичные операции поиска. Первый их аргумент задает строку, как массив символов или символ для поиска. Другие (необязательные) параметры задают позицию и число символов исходной строки, участвующие в операции. Эти функции находят первый или последний символ, который присутствует или, наоборот, отсутствует в строке.
string s1("mississippi");
int i=s1.find_first_of("aeiou");//найти первую гласную
cout << i<< " \n";
int j=s1.find_first_not_of("aeiou",4);//найти первую coгласную, начиная с пятого //символа
cout << j<< " \n";