Void main(). string s1("лесная королева"), s2("ле");
{
string s1("лесная королева"), s2("ле");
cout << "s1= " << s1 << endl;
cout << "s2= " << s2 << endl;
int i = s1.find(s2);
int j = s1.rfind(s2);
cout << "перше s2 в s1 " << i << endl;
cout << "останнє s2 в s1 " << j << endl;
cout << "перше 'о' в s1 " << s1.find('о') << endl;
cout << "останнє 'о' в s1 " << s1.rfind ('о') << endl;
cout<<"перше в s1 " << s1.find_first_of("ае") << endl;
cout<<"останнє в s1 "<< s1.find_last_of("ае") << endl;
}
Результат роботи програми:
s1= лесная королева
s2= ле
перше s2 в s1 0
останнє .s2 в s1 11
перше 'о' в s1 8
останнє 'о' в s1 10
перше в s1 1
останнє в s1 14
7.2.3 Порівняння частин рядків
Для порівняння рядків застосовуються перевизначені операції відношення, а якщо потрібно порівнювати частини рядків, використовується функція compare:
int compare(const string& str) const;
int compare(size_type pos1, size_type n1,
const string& str) const;
int compare(size_type pos1, size_type n1,
const string& str, size_type pos2, size_type n2) const;
Перша форма функції порівнює два рядки повністю і повертає значення, менше 0, якщо рядок, який викликає функцію, лексикографічно менший str, рівний нулю, якщо рядки однакові, і більше нуля – якщо рядок, який викликає функцію, більший. Ця форма є аналогом функції порівняння рядків strstr бібліотеки С.
Друга форма функції виконує аналогічні дії, але порівнює з рядком str n1 символів рядка, який викликає функцію, починаючи з pos1. Третя форма функції порівнює n1 символів рядка, який викликає функцію, починаючи з pos1, з підрядком рядка str довжиною n2 символів, починаючи з pos2.
Аналогічні форми функцій існують і для порівняння рядків типу string з рядками старого стилю.
Приклад використання функції порівняння рядків:
#include <string>
#include <iostream>
using namespace std;
Дата добавления: 2014-12-26; просмотров: 614;