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

10-дәріс. Тақырыбы: Жолдар.

Жоспар:

1. Жолдарға қолданылатын опреациялардың функциялары.

Қатарларды өңдеу библиотекасындағы қатарларға қолданылатын

функциялар. қатарларды өңдеу библиотекасы қатарларды анықтау және

қатарларды лексемаларға бөлу үшін, символдарды және басқа қатарларды

іздеу үшін, қатарларды салыстыру үшін, қатарлық мәліметтерге

қолданылатын операцияларды орындау үшін көптеген пайдалы

функцияларды ұсынады. қатарларды өңдеу библиотекасымен жұмыс істеу

үшін <string.h> тақырыптық файлын қосу қажет. Кестеде бұл

функциялардың тізімі келтірілген.

Кесте-қатарларды өңдеу библиотекасындағы функциялар

Прототип Функциялардың баяндалуы

41

char *strcpy(char *s1, const char

*s2);

s2 қатарын s1 қатарына көшіреді. s1 мәнін

қайтарады. s2 қатарының құрамын

сыйдыру үшін s1 қатарының жеткілікті

өлшемін бар деп жорамалдайды.

char *strncpy(char *s1, const

char *s2, size_t n);

s1 қатарына s2 қатарынан n-нан көп емес

символдарды көшіреді. s1 мәнін

қайтарады..

char *strcat(char *s1, const char

*s2);

s1 қатарын s2 қатарымен біріктіреді. s1

қатарының NULL символын s2 қатарының

бірінші символына көшіреді. s1 мәнін

қайтарады..

char *strncat(char *s1, const char

*s2, size_t n);

s1 қатарымен s2 қатарының n-нан көп емес

символдардын біріктіреді. s1 қатарының

NULL символын s2 қатарының бірінші

символына көшіреді.s1 мәнін қайтарады..

Қатарларды өңдеу библиотекасындағы қатарларды салыстыру

функциялары. Кестеде функциялардың прототиптері мен әрқайсысының

қысқаша баяндалуы келтірілген.

Кесте-Салыстыру функциялары

Прототип Функциялардың баяндалуы

int strcmp(const char *sl, const

char *s2);

sl қатарын s2 қатарымен салыстырады.

Функция 0-ді, 0-ден кіші немесе нөлден үлкен

мәнді қайтарады, егер sl сәйкесінше s2-ге

тең, кіші немесе үлкен болса. .

int stricmp(const char *sl,

const char *s2);

Төмеңгі және жоғарғы регистрлердегі

символдардың арасындағы ерекшеліктерді

ескермей-ақ s1 қатарын s2 қатарымен

салыстырады. Функция 0-ді, 0-ден кіші немесе

нөлден үлкен мәнді қайтарады, егер sl

сәйкесінше s2-ге тең, кіші немесе үлкен

болса.

int strncmp(const char *sl,

const char *s2, size_t n);

s1 қатарының n-ге дейіңгі символдарын s2

қатарымен салыстырады. Функция 0-ді, 0-ден

кіші немесе нөлден үлкен мәнді қайтарады,

егер sl сәйкесінше s2-ге тең, кіші немесе

үлкен болса.

int strnicmp(const char *sl,

const char *s2, size_t n);

Төмеңгі және жоғарғы регистрлердегі

символдардың арасындағы ерекшеліктерді

ескермей-ақ s1 қатарының n-ге дейіңгі

символдарын s2 қатарымен салыстырады.

Функция 0-ді, 0-ден кіші немесе нөлден үлкен

мәнді қайтарады, егер sl сәйкесінше s2-ге

тең, кіші немесе үлкен болса.

Қатарларды өңдеу библиотекасындағы іздеу функциялары. Кестеде

42

функциялардың прототиптері мен әрқайсысының қысқаша баяндалуы

келтірілген.

Кесте-Іздеу функциялары

Прототип Функциялардың баяндалуы

char *strchr(const char *s, int

c)

S қатарындағы с символдың біріншіші

кірісіндегі позициясын анықтайды. Егер с

табылса, онда функция s қатардағы с -ке

көрсеткішті қайтарады. қарсы жағдайда

NULL мәнді көрсеткіш қайтарылады.

char *strrchr(const char *s, int

c)

S қатарындағы с символдың соңғы кірісіндегі

позициясын анықтайды. Егер с табылса, онда

функция s қатардағы с -ке көрсеткішті

қайтарады. қарсы жағдайда NULL мәнді

көрсеткіш қайтарылады.

size_t strspn(const char *s1,

const char *s2)

S2 қатарына кіретін символдардан тұратын s1

қатарының бастапқы сегментінің ұзындығын

қайтарады және анықтайды.

size_t strcspn(const char *s1,

const char *s2)

S2 қатарына кірмейтін символдардан тұратын

s1 қатарының бастапқы сегментінің

ұзындығын қайтарады және анықтайды.

char *strpbrk(const char *s1,

const char *s2)

S1 қатарынан s2 қатарының кез келгегн

симводарының ішінен бірінші кірісіндегі

позициясын табады. Егер s2 қатарынан

символ табылса, онда функция көрсеткішті

s1 қатардағы сол символға қайтарады. қарсы

жағдайда NULL мәнді көрсеткіш

қайтарылады.

char *strstr(const char *s1,

const char *s2)

S2 қатардың ішіндегі қатардың бірінші

кірісіндегі позициясын табады. Егер қатар

ішіндегі қатар табылса, онда функция

көрсеткішті s1 қатардағы қатар ішіндегі

қатарды қайтарады. қарсы жағдайда NULL

мәнді көрсеткіш қайтарылады.

char *strtok(char *s1, const

char *s2)

Функцияның тізбектелген шақырылуы s1

қатарының s2 қатарындағы символдарға

бөлінген лексемаларға (текстік қатардағы

сөздер сияқты логикалық бөлімдер)

ұсақтаумен орындалады. Функция бірінші рет

шақырылғанда аргумент ретінде s1 қатарын

алады, ал келесі шақырылуларда сол қатарды

ұсақтауды жалғастыру үшін бірінші аргумент

ретінде NULL беріледі. Әрбір шақырылуда

көрсеткіш s1 қатарының ағынды лексемасына

қайтарылады. Егер функция кезекті

43

шақырылуында қатарда лексема қалмағанын

анықтаса, онда NULL қайтарылады.

Қатарларды өңдеу библиотекасындағы басқа функциялары

Кестеде қатарды өңдеу библиотекасындағы басқа функиялардың

прототиптері мен қысқаша баяндалуы келтірілген.

Кесте - қатарларды өңдеу библиотекасындағы басқа функциялары

Прототип Функциялардың баяндалуы

int strlen (const char

*s)

S қатарының ұзындығын анықтайды. NULL символына

шек қоятын символдарын табады.

char *strlwr (char

*s)

s қатарындағы жоғарғы регистр символдарын төмеңгі

регистр символдарына түрлендіреді. Басқа символдарға

тимейді. Функция көрсеткішті s қатарына қайтарады.

char *strupr(char

*s)

s қатарындағы төмеңгі регистр символдарын жоғарғы

регистр символдарына түрлендіреді. Басқа символдарға

тимейді. Функция көрсеткішті s қатарына қайтарады..

сhar *strrev(char

*s)

S қатарындағы символдардың тәртібіне қатынайды және

көрсеткішті s қатарына қайтарады.

Төменде қатарлармен жұмыс істейтін

функцияларды келтірілген Мысал 1:

main( ) { static char l[ }=”Сведения о

результатах сессии”; puts(l); flen(l, 8);

puts(l); } flen (stroke, size) char *stroke; int

size; { if (strlen(stroka)>size)

*(stroke+size)=’\0’; } Результат: Сведения

о результатах сессии Сведения

қолданатын программалардың

мысалдары Мысал 3: #include

<stdio.h> # define NAME

“Ритчи” main() { char a[20];

puts (“Назовите автора языка

Си”); gets(a); while

(strcmp(a,NAME)!=0) {

puts(“Ввод следующего

варианта”); gets (a); }

puts (“Ответ принят”); }

Мысал 2: #include <stdio.h> main() { static

char name[80]; static char stud[ ]= “является

студентом факультета ИиВТ”; puts(“Ведите

ваше имя.”); gets(name); strcat (name,

stud); puts (name); puts (stud); }

Результат: Введите ваше имя Марат Марат

является студентом факультета ИиВТ

является студентом факультета ИиВТ

#include <stdio.h> #define

STROKA “С Новым годом!”

main() { static char

*ptr=STROKA; static char

res[25]; puts (ptr); puts (res);

strcpy (res,ptr); puts (ptr); puts

(res); } Результат: С Новым

годом! С Новым годом! С

Новым годом!