316
Программа жұмысының нəтижесі:
s1 = лесная королева
s2 = ле
s1 құрамындағы алғашқы s2 0
s1 құрамындағы соңғы s2 11
s1 құрамындағы алғашқы 'o' 8
s1 құрамындағы соңғы 'o' 10
s1 құрамындағы алғашқы 1
s1 құрамындағы соңғы 14
Тіркестердің бөліктерін салыстыру
Тіркестерді бүтіндей толық салыстыру үшін асыра жүктелген қатынастық
операциялар қолданылады, ал егер тіркестердің бөліктерін салыстыру керек
болса,
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;
Функцияның брінші формасы екі тіркесті бүтіндей толығымен салысты-
рып, шақырушы тіркес лексикографиялық тұрғыдан
str
тіркесінен кіші бол-
са, нөлден кіші мəнді, тіркестер бірдей болса, нөлге тең мəнді жəне шақырушы
тіркес үлкен болған жағдайда нөлден үлкен мəнді қайтарады. Бұл форма С
кітапханасындағы
strstr
тіркестерді салыстыру функциясының аналогы бо-
лып табылады.
Функцияның екінші формасы да осыған ұқсас əрекеттер орындайды, бірақ
str
тіркесімен шақырушы тіркестің
pos1
позициясынан басталатын қатар
орналасқан
n1
симолдар санын салыстырады.
Функцияның үшінші формасы
шақырушы тіркестің
pos1
позициясы-
нан басталатын
n1
симолын
str
тіркесінің
pos2
позициясынан басталатын,
ұзындығы
n2
болатын ішкі тіркесімен салыстырады.
Функциялардың осыған ұқсас формалары
string
типті тіркестерді ескі
стильдегі тіркестермен салыстыру үшін қолданылады.
Тіркестерді салыстыру функциясын қолдану мысалы:
#include
#include
using namespace std;
int main (){
string s1("лесная королева"),s2("лe"),s3("кopoвa");
cout << "s1 = " << s1 << endl;
cout << "s2 = " << s2 << endl;
cout << "s3 = " << s3 << endl;
317
if (s2.compare(s3) > 0) cout << "s2 > s3 " << endl;
if (s1.compare(7, 4, s3) < 0)
cout << "1[7-l0] < s3 " << endl;
if (s1.compare(7, 4, s3, 0,4 ) == 0)
cout << "s1[7-l0] == s3[0-3] " << endl;
}
Программаның орындалу нəтижесі:
s1 = лесная королева
s2 = ле
s3 = корова
s2 > s3
s1[7-l0] < s3
s1[7-l0] == s3[0-3]
Тіркестердің сипаттамаларын алу
string
класында объектіге жұмсалған жады көлемі мен тіркестің
ұзындығын алуға мүмкіндік беретін бірқатар функция-мүшелер анықталған:
size_type size() const; // Тіркес элементтерінің саны
size_type length() const; // Тіркес элементтерінің саны
size_type max_size() const; // Тіркестің максималды
// ұзындығы
size_type capacity() const; // Тіркестің алатын
// жады көлемі
bool empty() const; // Тіркес бос болса,
// ақиқат мəнін қайтарады
Тіркестермен жұмыс практикумның [12] бесінші семинарында
қарастырылады.