Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

15-ameliy sabaq

.pdf
Скачиваний:
0
Добавлен:
25.12.2023
Размер:
335.96 Кб
Скачать

15-ÁMELIY SABAQ. QATARLAR BÓLIMLERIN IZLEW HÁMDE OLARDÍ ÓZGERTIW MENEN ÓSHIRIWGE TIYISLI MÁSELELER

SHESHIW.

Jumıstıń maqseti: C++ tilinde qatarlar bólimlerin izlew, ózgertiw menen óshiriwge tiyisli máseleler sheshiwdi úyreniw.

Teoriyalıq bólim:

C++ tilinde standart qatar tipine qosımsha sıpatında string tipi kiritilgen hám ol string klassı kórinisinde ámelge asırılǵan. Bul tiptegi qatar ushın ‘\0’ belgisi tamamlanıw belgisi esaplanbaydı hám ol ápiwayı belgiler massivi sıpatında qaraladı. string tipinde qatarlar uzınlıǵınıń orınlanatuǵın ámeller nátiyjesinde dinamikalıq tárizde ózgerip turıwı, onıń quramında bir qatar funkciyalar anıqlanǵanlıǵı bul tip penen islesiwde belgili bir qolaylıqlar

jaratadı.

string tipindegi ózgeriwshiler tómendegishe járiyalanıwı múmkin:

string s1,s2,s3;

Ámeliy bólim:

Qatar bólegin izlew funkciyaları

string klassında qatar bólegin izlew ushın hár túrli varianttaǵı funkciyalar anıqlanǵan. Tómende olardan tiykarǵıların kórip shıǵamız.

unsigned int find(const string &str, unsigned int

pos=0)const;

Funkciya,

onı

shaqırǵan

qatardıń

kórsetilgen

ornınan (pos) baslap str qatardı

izleydi hám

birinshisi sáykes

keliwshi qatar

bóleginiń baslanıw indeksin juwap sıpatında qaytaradı, keri jaǵdayda maksimal oń pútin npos sanın qaytaradı

(npos = 4294967295), eger izlew ornı (pos) berilmese, qatar basınan baslap izlenedi.

unsigned int find(char c.unsigned int pos=0)const;

Bul funkciya aldınǵısınan parıqlı túrde qatardan c belgisin izleydi.

unsigned int rfind(const string &str,

unsigned int pos=npos)const;

Funkciya,

onı

shaqırǵan

qatardıń

kórsetilgen pos ornına

shekem str qatardıń

birinshi ushıraǵan

orınıń

indeksin

qaytaradı, keri

jaǵdayda npos mánisin qaytaradı, eger pos kórsetilmese qatar

aqırına shekem

izleydi.

 

 

 

 

 

unsigned int rfind(char c.unsigned int pos = npos) const;

Bul funkciyanıń aldınǵısınan parıqı - qatardan c belgisin izleydi.

unsigned int find_first_of(const string &str,

unsigned int pos=0)const;

Funkciya,

onı

shaqırǵan

qatardıń

kórsetilgen (pos) ornınan

baslap str qatarınıń

qálegen bir belgisin

izleydi

hám birinshi ushıraǵanınıń

indeksin, keri jaǵdayda npos sanın qaytaradı.

 

unsigned int find_first_of(char c, unsigned int pos=0)const;

Bul funkciyanıń aldınǵısınan parıqı-qatardan ‘c’ belgisin izleydi.

unsigned int find_last_of(const string &str,

unsigned int pos=npos)const;

Funkciya,

onı

shaqırǵan

qatardıń

kórsetilgen (pos) orınnan

baslap str qatardıń

qálegen

bir belgisin

izleydi

hám oń tárepten birinshi

ushıraǵan indeksti, keri jaǵdayda npos sanın qaytaradı.

unsigned int find_last_of(char c, unsigned int pos=npos)

const;

Bul funkciyanıń aldınǵısınan parıqı-qatardan ‘c’ belgisin izleydi.

unsigned int find_first_not_of(const string &str,

unsigned int pos=0)const;

Funkciya, onı shaqırǵan qatardıń kórsetilgen (pos) ornınan baslap str qatardıń hesh bir belgisi kirmeytuǵın qatar bólegin izleydi hám shep tárepten birinshi ushıraǵanınıń indeksin, keri jaǵdayda npos sanın qaytaradı.

unsigned int find_first_not_of(char c,

unsigned int pos=0)const;

Bul funkciyanıń aldınǵısınan parıqı-qatardan ‘c’ belgisinen parıqlı birinshı belgini

izleydi.

unsigned int find_last_not_of(const string &str,

unsigned int pos=npos)const;

Funkciya, onı shaqırıwshı teksttiń kórsetilgen ornınan baslap str qatarın qurawshı belgiler toplamına kirmegen belgini izleydi hám eń oń tárepten birinshi tabılǵan belginiń indekisin, keri jaǵdayda npos sanın qaytaradı.

unsigned int find_last_not_of(char c,

unsigned int pos=npos)const;

Bul funkciyaniń aldınǵıdan parıqı - qatar aqırınan baslap с belgisine

uqsamaǵan belgini izleydi.

Izlew funkciyaların qollanıwǵa mısal:

#include <iostream.h> #include <conio.h> void main()

{

string s1=“01234567893456ab2csef”, s2=“456”, s3=“ghk2”; int i, j;

i

=

s1.find(s2);

 

 

 

j

=

s1.rfind(s2);

 

 

 

cout <<

i;

//i

=

4

cout

<<

j;

//j

=

11

cout

<<

s1.find(„3‟) << endl;

//nátiyje 3

cout <<

s1.rfind(„3‟) << endl;

//nátiyje 10

cout <<

s1.find_first_of(s3) << endl;

//nátiyje

2

cout <<

s1.find_last_of(s3) << endl;

//nátiyje

16

cout

<<

s1.find_first_not_of(s2) << endl; //nátiyje 14

cout

<<

s1.find_last_not_of(s2) << endl; //nátiyje 20

}

Qatar bólegin óshiriw funkciyası

Qatar bólegin óshiriw ushın tómendegi funkciyanı isletiw múmkin:

erase(unsigned int pos = 0, unsigned int n = npos);

Bul funkciya, onı shaqırıwshı qatardıń pos ornınan baslap n dana belgini

óshiredi. Egerde pos kórsetilmese, qatar basınan baslap óshiriledi. Eger n kórsetilmese, qatardı aqırına shekem bolǵan belgiler óshiriledi:

string s1, s2, s3; s1 = “0123456789”; s2 = s1;

s3 = s1;

 

//s1 =

s1.erase(4,

5);“01239”

s2.erase(3);

//s2

= “012”

s3.erase();

//s3

= “”

void clear() funkciyası, onı shaqırıwshı qatardı tolıq tazalaydı.

Mısal ushın:

s1.clear(); //qatar bos dep esaplanadı (s1 = “”)

Qatar bólegin almastırıw funkciyası

Bir qatar bóleginiń ornına basqa qatar bólegin qosıw ushın tómendegi

funkciyalardan paydalanıw múmkin:

replace(unsigned int pos1, unsigned int n1, const string

&str);

replace(unsigned int pos1, unsigned int n1, const string

&str,

unsigned int pos2, unsigned int n2);

replace(unsigned int pos1, unsigned int n1, const char *str,

int n);

Bul funkciyalar insert sıyaqlı isleydi, onnan parıqlı túrde ámel shaqırıwshı qatardıń kórsetilgen ornınan (pos1) n1 belgiler ornına str qatarın yamasa pos2 orınnan baslanǵan n2 belgiden ibarat bólekti ǵana qoyadı (almastıradı).

Mısal:

char *sc = “0123456789”;

unsigned

int i =

3, j = 2;

string s1, s, s2;

 

s2 = sc;

 

//s2 =

 

 

“0123456789”

s1 = “mısallar”;

 

 

s = “xyz”;

 

 

s2.replace(i, j,

“abcdef”);

//s2 =

“012abcdef56789”

 

 

 

 

//s1 =

s1.replace(i - 1, j + 1, s2, 4, 5);

“mi45678lar”

s.replace(i - 2,

j + 2, sc, 5);

//s = “x012345”

swap(string & str) funkciyası eki qatardı óz-ara almastırıw ushın isletiledi.

Mısal ushın:

string s1, s2;

s1 =“01234”;

s2 =“98765432”;

s1.swap(s2); //s2 = “01234” hám s1 = “98765432” boladı

Qatar bólegin ajıratıp alıw funkciyası

Funkciya prototipi tómendegishe:

string substr(unsigned int pos=0, unsigned int n=npos) const;

Bul funkciya, onı shaqırıwshı qatardıń pos ornınan baslap n belgini nátiyje sıpatında qaytaradı. Eger pos kórsetilmese, qatar basınan baslap ajıratıp alınadı, eger n kórsetilmese, qatar aqırına shekem bolǵan belgiler nátiyje sıpatında qaytaradı:

string s1, s2, s3;

 

s1

= “0123456789”;

 

s2

= s1;

 

s3

= s1;

 

s2

= s1.substr(4, 5);

//s2 = “45678”

s3

= s1.substr(3);

//s3 = “3456789”

// “30123456789” qatar ekranǵa shıǵıwı ushın cout << s1.substr(1, 3) + s1.substr();

string tiptegi qatardı char tipke ótkeriw string tiptegi qatardı char tipine ótkiziw ushın

const char *c_str() const;

funkciyanı isletiw kerek. Bul funkciya char tiptegi ‘\0’ belgisi menen tamamlanatuǵın qatarǵa turaqlı kórsetkishti qaytaradı:

сhar *s1;

string s2 = “0123456789”;

s1 = s2.c_str();

Dál usı maqset ushın

const char * data()const;

funkciyasınan da paydalanıw múmkin. Bıraq bul funkciya qatar aqırına ‘\0’ belgisin qospaydı.

Соседние файлы в предмете Программирование на C++