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

Жолдарды µњдеу библиотекасындаѓы жолдарға ќолданылатын операциялардыњ функциялары

Жолдарды µњдеу библиотекасы жолдарды аныќтау жєне жолдарды лексемаларѓа бµлу ‰шін, символдарды жєне басќа жолдарды іздеу ‰шін, жолдарды салыстыру ‰шін, жолдық мєліметтерге ќолданылатын операцияларды орындау ‰шін кµптеген пайдалы функцияларды ±сынады. Жолдарды µњдеу библиотекасымен ж±мыс істеу ‰шін <string.h> таќырыптыќ файлын ќосу ќажет. 6-шы кестеде б±л функциялардыњ тізімі келтірілген.

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 *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-ге тењ, кіші немесе ‰лкен болса.

Іздеу функциялары

Char *strchr(const char *s, int c) - S жолындағы с символдыњ біріншіші кірісіндегі позициясын аныќтайды. Егер с табылса, онда функция s жолдағы с -ке кµрсеткішті ќайтарады. Ќарсы жаѓдайда NULL мєнді кµрсеткіш ќайтарылады.

Size_t strspn(const char *s1, const char *s2) -S2 жолына кіретін символдардан т±ратын s1 жолының бастапќы сегментініњ ±зындыѓын ќайтарады жєне аныќтайды.

Жолдарды µњдеу библиотекасындаѓы басќа функциялары

int strlen (const char *s)- S жолының ±зындыѓын аныќтайды. NULL символына шек ќоятын символдарын табады.

Char *strupr(char *s)- s жолындағы тµмењгі регистр символдарын жоѓарѓы регистр символдарына т‰рлендіреді. Басќа символдарѓа тимейді. Функ­ция кµрсеткішті s жолына ќайтарады.

/* strcat, strncat функцияларын ќолдану*/

#include <stdio.h>

#include <string.h>

main() {

char s1[20] = “Happy ”;

char s2[] = “New Year”;

char s3[40] = “”;

printf(“s1 = %s\ns2 = %s\n”, s1, s2);

printf(“strcat(s1, s2) = %s\n”, strcat(s1, s2)); printf(“strncat(s3, s1, 6) = %s\n”,

strncat(s3, s1, 6));

printf(“strcat(s3, s1) = %s\n”, strcat(s3, s1));

return 0; }

Си тіліндегі мәліметтер структурасы

Єрт‰рлі типті мєліметтерді баяндау ‰шін жєне жања типтерді ±йымдастыру ‰шін структура деген тип ыњѓайлы жєне икемді болып табылады. Мєліметтер структурасын баяндаѓанда алдымен структуралыќ шаблонды келесі т‰рде баяндауѓа болады:

struct <rname>

{

<type> <fname>;

…………

<type> <fname>;

}

м±ндаѓы rname - структура типініњ аты, структура типініњ атын кµрсетпесе де болады, } жаќшада структура элементтерініњ тізбегі келтірілген жєне єрбір элементтіњ типі кµрсетілген. Структуралыќ шаблон аныќталѓаннан кейін структуралыќ айнымалыныњ аныќталуы келесі т‰рде жазылады:

struct <rname> <vnames>;

vnames - структуралыќ айнымалыныњ аты.

Мысал:

struct sved

{

char fam[25];

char adr[20];

int gr;

};

struct sved inf;

Сыртќы жєне статикалыќ структуралыќ айнымалыларды инициалдауѓа болады. Структуралыќ айнымалыныњ сыртќы типке жататыны шаблонныњ аныќталѓан орнына байланысты емес, осы айнымалы программаныњ ќандай жерінде аныќталѓанына байланысты. Келесі бар деп жорамалдайыќ:

static struct sved inf;

Есептерді шыѓару барысында структуралардан ќ±рылѓан массивтер пайдаланылады, яѓни структуралыќ айнымалы массивтіњ элементі болып табылады. Структуралардан ќ±рылѓан массивтер келесі т‰рде баяндалады:

struct sved inf[10];

sved типті структура inf[10] массивтіњ элементі болып табылады.

Структуралардан ќ±рылѓан массивтіњ элементтерін аныќтаѓанда бµлек алынѓан структура жаѓдайындаѓы сиыќты структураныњ аты структура элементініњ атынан н‰кте “.” (элементті алу операциясы) символы арќылы бµлектенеді.

Структураларѓа сілтейтін кµрсеткіштердіњ ќолданылуын ќарастырайыќ. Жоѓарыда айтылѓандай, структуралар функцияныњ аргументі ретінде ќолданылмайды, ал структураларѓа сілтейтін кµрсеткіштердіњ ќолданылуы структураныњ элементтеріне кµрсеткіш арќылы ќатынас жасауѓа м‰мкіндік береді. Кµрсеткіштіњ сипаттамасы тµменде ќарастырылѓан (жоѓары келтірілген структуралардан т±ратын массив ќарастырылады):

Struct knig *ptrst;

Кез келген knig типті структураларѓа сілтейтін ptrst кµрсеткіші ќ±рылѓан.

Келесі тењдеулер орынды:

Ptrst==&masking[0];

*ptrst==masking[0];

ptrst->author masking[0].author -ѓа эквивалентті болады.

Егер ptrst masking[0] структураѓа сілтейтін кµрсеткіш болса, онда келесі белгілеулер эквивалентті болады:

masking[0].author==(*ptrst).author==ptrst->author

ptrst+1 masking[1] структураѓа сілтейді. Берілген мысалдан ptrst кµрсеткішке 1 ќосылѓаны адреске 47 ќосылатынын байќауѓа болады, µйткені єрбір knig типті структураѓа 47 байт бµлінеді.

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