38
string (const char *, int n);
string (
string &);
Бірінші конструктор string типті бос объект құрады. Екінші конструктор ескі
стильдегі тіркестер негізіндегі string типті объект құрады, ал үшіншісі string типті
объект құрады да, бірінші параметрде кӛрсетілген тіркестен n символды алып осыған
жазады. Тӛртінші конструктор кӛшіру конструкторы болып табылады, ол параметр
ретінде берілген объектінің кӛшірмесі арқылы жаңа объектіні құрады.
string класында үш меншіктеу опера-циясы анықталған:
string&operator= (const string&str);
string&operator= (const char*s);
string&operator= (char c);
Мұнан бір тіркеске string типтегі басқа тіркесті немесе жеке символды да меншік-
теуге болатыны кӛрініп тұр. Мысалы:
string s1;
string s2(―Azat‖);
string s3(s2);
s1=‗X‘;
s1=―Azat‖;
s2=s3;
string класының функциялары: тіркестің бӛлі-гін қосу және меншіктеу, тіркестерді
түрлендіру, ішкі тіркесті іздеу, тіркес бӛліктерін салыстыру.
Тіркес элементін анықтау үшін бұрынғы ин-декстеу операциясы қолданылады
және at функциясы анықталған. Мысалы:
string s(―Azat‖);
cout << s.at(1);
Егер индекс тіркес ұзындығынан артып кет-се, онда out_of_range аластау
(исключение) оқи-ғасы туындайды.
8. Тіркес бӛлігін қосу және меншіктеу
Бір тіркестің ішкі бӛлігін екінші бір тіркеске меншіктеу үшін assign функциясы
қолданылады:
assign (const string &str);
assign (const string &str, size_type pos size_type n);
assign (const char *s, size_type n);
Алғашқы форма str тіркесін оны шақырған тір-кеске меншіктейді, бұл функция
әрекеті меншік-теу операциясына эквивалентті болып саналады. Мысалы:
string s1(―Azat‖), s2
s2.assign (s1); // бұл s2=s1 дегенмен бірдей
Жоғарыдағы функциялардың екінші форма-сы шақырушы тіркеске str тіркесінің
pos по-зициясынан басталған n символдардан тұра-тын бӛлігін меншіктейді. Егер pos+n
мәні тіркес ұзындығынан артық болса, онда str тіркесі толық меншіктеледі.
Фунциялардың үшінші формасы шақырушы тіркеске s тірке-сінің n символын
меншіктейді.
Мысалы:
string s1(―telefon‖), s2(―olar‖);
s1.assign (s2); // нәтижесі: s1=s2=olar
s1.assign (s2, 1, 3); // нәтижесі: lar
Бір тіркестің бӛлігін екінші тіркеске қосып біріктіру үшін append функциясы
қолданылады:
append (const string&str);
append(const string&str, size_type pos, size_type n);
append (const char*s, size_type n);
39
Бірінші форма str тіркесін шақырушы тіркестің соңына қосады, оның әрекеті
конкатенация ама-лына (біріктіруге) ұқсас болып келеді. Екінші форма шақырушы
тіркеске pos позициясынан басталған str тіркесі бӛлігін меншіктейді. Мысалы:
string s1(―fon‖), s2(―dar‖);
s1.append (s2); // нәтижесі: fondar
s1.append (s2, 1, 2); // нәтижесі: fonar
9. Тіркестерді тҥрлендіру
Бір тіркес бӛлігін екінші тіркеске кірістіріп қою (вставка) үшін insert функциясы
қолданылады:
insert (size_type pos1, const string &str);
insert (size_type pos1, const string &str, size_type
pos2, size_type n);
insert (size_type pos, const char *s, size_type n);
Бірінші форма str тіркесін оны шақырған тір-кеске pos1 позициясынан бастап
кірістіріп орна-ластырады да, одан кейін шақырған тіркестің қалған символдары
жалғасады. Егер pos1 тіркес ұзындығынан артық болса, онда out_of_range оқиғасы
орын алады.
Екінші формада оны шақырған тіркестің pos1 позициясы сақталады, сонан соң
оның pos2 позициясынан бастап str тіркесінің n символы кірістіріледі де, одан кейін
шақырған тіркестің қалған символдары жалғасады.
Функцияның үшінші формасында оны шақырған тіркестің pos1 позициясынан
бастап бұрынғы типтегі s тіркесінің n элементін кірістіріп орналастырады.
Тіркестің ішкі бӛлігін жою үшін erase функциясы қолданылады:
erase (size_type pos=0, size_type n=npos);
Ол шақырылған тіркестің pos позициясынан бастап n элементін жояды. Егер
позиция кӛрсе-тілмесе, онда ол тіркес басынан жойылады.
Бүкіл тіркесті тазалау қызметін clear функ-циясы атқарады:
void clear();
Тіркестің белгілі бір бӛлігін ауыстыру (замена) үшін replace функциясы
қолданылады:
replace (size_type pos1, size_type n1, const
string &str);
replace (size_type pos1, size_type n1, const
string &str, size_type pos2, size_type n2);
мұндағы pos1 – шақырушы тіркестің ауыстыру басталатын позициясы, n1 –
жойылатын элемент-тер саны, pos2 – str тіркесінің оны шақырған тір-кеске
кірістірілетін позициясы нӛмірі, n2 – str тіркесінің кірістірілетін элементтері саны.
Функцияның үшінші формасы шақырушы тіркестің n1 символын ескі стильдегі s
тіркесінің n2 символына ауыстырады:
replace (size_type pos1, size_type n1, const char *s, size_type n2);
Екі тіркесті бір-бірімен алмастыру үшін swap функциясы қолданылады:
swap (string &s);
Тіркестің белгілі бір бӛлігін бӛліп алу (выде-ления) үшін substr функциясы
қолданылады:
string substr (size_type pos=0, size_type n=npos) const;
Бұл функция шақырылатын тіркестің ұзынды-ғы n болатын ішкі бӛлігін pos
позициясынан бастап қайтарады. Егер pos тіркес ұзындығы-нан артық болса, онда
out_of_range оқиғасы туындайды.
string типті объектілерді ескі стильдегі тіркеске түрлендіру үшін c_str
функциясы қолданылады:
const char*c_str() const;
Енді жоғарыдағы функцияларды қолдануға арналған мысалдар келтірейік.
Достарыңызбен бөлісу: |