Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prog_exz_dayin.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
237.64 Кб
Скачать

12.Қатарлар. Қатарларға қолданылатын функциялар

Қатар - нөл-символмен аяқталатын символдар массиві. С++-те қатармен жұмыс істеуді 2мүмкіндігі бар:С библиотекасынан (<string.h> н/е <cstring>) мұрагерлікке қалған функциялар және С++-тің string библиотекалық класы. С-дан мұрагерлікке қалған функциялар қолдану кезінде ыңғайсыз ж/е қауіпті, с/і олар қатардың шекарадан шығып кетуін қадағаламайды. string типті қатары ақпараттың шекарадан шығып кетуінен қорғалған және операциялар көмегімен жұмыс істеуге б/ы.

string класының функциялары:

Қатардың бөлігін қосу және меншіктеу

Бір қатардың бөлігін екінші қатарға меншіктеу үшін assign функциясы қолданылады

assign (const string&str);

assign (const string&str, size_type pos, size_type n);

assign (const char*s, size_type n);

Бір қатардың бөлігін екінші қатарға қосу үшін append функциясы қолданылады

append (const string&str);

append(const string&str, size_type pos, size_type n);

append (const char*s, size_type n);

Қатарларды түрлендіру

Бір қатардың бөлігін екіншісіне қою үшін 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);

Қатардың бөлігін жою үшін 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);

replace (size_type pos1, size_type n1, const char*s, size_type n2);

2 қатарды бір-бірімен алмастыру үш.swap функ.қолд. swap (string&s);

Қатардың бөлігін бөліп алу үшін substr функциясы қолданылады

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

string типті объектілерді ескі стильдегі қатарға түрлендіру үшін c_str функциясы қолданылады const char*c_str() const;

Қатардың құрамын іздеу size_type find(const string&str, size_type pos=0) const;

Шақырылған қатардан pos позициясынан бастап str қатарының сол жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады size_type find(char c, size_type pos=0) const;

Шақырылған қатардан pos позициясынан бастап с символының сол жақтан енуін іздейді ж/е егер қатар табылмаса,онда қатардың позициясын н/е npos-ны қайтарады.

Шақырылған қатардан pos позициясына дейін str қатарының оң жақтан енуін іздейді ж/е егер қатар табылмаса, онда қатардың позициясын н/е npos-ны қайтарады.

size_type rfind(char c, size_type pos=npos) const;

Шақырылған қатардан pos позициясына дейін с символының оң жақтан енуін іздейді ж/е егер қатар табылмаса,онда қатардың позициясын н/е npos-ны қайтарады

Қатардың бөліктерін салыстыру үшін compare функциясы қолданылады.

size_type rfind(const string&str, size_type pos=npos) const;

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;

13 . typedef, enum Қолданушы анықтайтын мәліметтер типтері:

С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union.

Программа анығырақ болу үшін typedef түйінді сөзінің көмегімен типке жаңа ат беруге болады: typedef тип жаңа_ ат [өлшемі]

typedef тип үшін тип спецификаторын анықтайды. Бұл хабарлау қолданушы анықтаған типтерге қысқа және мағыналы аттар беру үшін қолданылады.

Мысалы: typedef char name [100];

name str[10]; //100 символды 10 қатардан тұратын жиым

Программа жазу кезінде әр түрлі мәнді бірнеше тұрақтыны анықтау қажет болады. Ол үшін тізімделген мәліметтер типін қолданған жөн.

Форматы:

enum [тип_ аты] {тұрақтылар тізімі};

14.Қолданушы анықтайтын мәліметтер тип/і:құрылым, біріктіру(struct, union)

С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union. Жиым элементтері бір типті болса, ал құрылым элементтері әр түрлі типті болады. struct типі бірнеше компоненттерді бір айнымалыға біріктіруге мүмкіндік береді. С++ тілінде құрылым класс түрі болып табылады, бірақ оны көп жағдайларда С тілінде анықталғандай қолдану жеткілікті.

Форматы:

struct [тип аты]

{ 1_тип 1_ элемент;

2_тип 2_ элемент;

………………….

n_тип n_элемент;}[сипаттамар тізімі];

Құрылымның мүшелеріне (.) арқылы енуге болады.

Мысал ретінде пәтерді сипаттаушы құрылымды қарастырайық. Бұл құрылым төмендегі белгілерді сақтайды: бөлмелер саны, пәтер ауданы, нөмірі, пәтер қожайыны.

Struct apartment {int count_rooms;    int area;    int number;    char fio[20]; };

Мұндағы struct–түйінді сөз, apartment–құрылым аты, ал count_rooms, area, number және fio – құрылым мүшелері.

Біріктірулер – құрылымның жеке жағдайы, барлық өрістері бір адресте орналасады.

Форматы:

union тег{

1_тип 1_ элемент;

2_тип 2_ элемент;

………………….

n_тип n_элемент;};

Тег – мәліметтердің жаңа типінің аты, оның жазылуы міндетті емес. Біріктірудің мүшелеріне (.) арқылы енуге болады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]