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

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

Жоспар:

1. Символдық жолдар және жолдарға қолданылатын функциялар.

Символдық қатарларды баяндау. Символдық қатарларды бірнеше

әдістер арқылы анықтауға болады. Келесі әдістер негізгі әдістерге жатады:

- қатарлық константаларды қолдану;

- символдық қатарлардан тұратын массивтерді және char типті массивтерді

қолдану.

қатарлық константалар тырнақшаларға алынады. Тырнақшаларға алынған

символдар және қатарлардың ең соңғы ‘/0’ символы жадының тізбектелген

ұяшықтарында жазылады. Компилятор қатарды жадыға орналастырғанда

жадының қажетті өлшемін анықтау үшін символдардың санын есептейді.

қатарлық константаларды #define директивасының көмегімен анықтауға

болады. Егер қатарда тырнақша символын қолдану керек болса, онда бұл

символдың алдына кері бөлшек сызығы жазылады. Мысалы:

printf (“\” Сведения о сессии”\n”);

қатарлық константа осы жол жазылған жадыдағы орынға сілтейтін

көрсеткіш болып табылады. Символдық қатарлардың массивін анықтағанда

компилятор жадыдының қажетті өлшемін анықтау үшін массивті

баяндағанда қатарлық константа арқылы инициалдауға болады. (Статикалық

және сыртқы массивтер қолданылады).

char c[ ]=”Определение максимального балла”; (сыртқы массив)

Әдеттегі массивтерді қолданған жағдайдағы сияқты бұл массивтің аты

с, осы массивтің 1-ші элементіне сілтейтін көрсеткіш болып табылады.

c==&c[0]; *c==’0’, және *(c+1)==c[1]==’n’;

қатарларды анықтау үшін көрсеткіштерді қолданамыз. Мысалы:

char *c1=”\n ввод баллов”;

Осы баяндалуға келесі баяндалу эквивалентті:

static char c1[ ]=”\n ввод баллов”;

қарастырылған қатардың екі баяндауы с1 қатардың көрсеткіші екенін

көрсетеді. Жадының қажетті өлшемін айқын көрсетуге де болады. Сыртқы

баяндауда келесі қатарды мына түрде жазуға болады:

char c[35]=”определение максимального балла”; вместо

char c[ ]=”определение максимального балла”;

Элементтердің саны қатардың ұзындығынан бір символға артық болуы

керек (нөль-символын есептегенде).Басқа статикалық немесе сыртқы

массивтердегідей кез келген қолданылған элементтер автоматты түрде

нөлмен инициалданады (символдық түрде бұл нөль санының символыны

38

емес, нөль-символы болып табылады).

Символдық қатарлардан тұратын массивтер. Әрбір жолы символдық

массив болып табылатын символдық қатарлардан тұратын массивтерді

қарастырайық. Статикалық массивтің баяндалуын келесі түрде келтірейік:

static char *m[4]={“регистр”,”ячейка”,”указатель”,”элемент”};

*m[4] массиві символдық қатарларға сілтейтін 4 көрсеткіштен тұрады.

Сонымен, символдық қатарлар массивтер болып табылатын болса, онда осы

массивтерге сілтейтін 4 көрсеткіш қарастырылады. 1-ші жолға сілтейтін 1-ші

көрсеткіш болып m[0]-ші табылады. 2-ші жолға сілтейтін 2-ші көрсеткіш

m[1]. Сонымен, әрбір көрсеткіш сәйкес қатардың ең бірінші символына

сілтейді.

*m[0]==’р’; *m[1]==’я’; *m[2]==’у’; *m[3]==’э’;

инициалдау массивтерге арналған ережелер бойынша орындалады.

Тырнақшаларға жазылатын текстер жақшалы жазбаларға эквивалентті:

{{…},{…},…,{…}};

қатарлардан құрылған массивтерді баяндағанда символдық қатарлардың

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

бірдей болады:

static char m[4][10];

статикалық (сыртқы) массивтің қатарларының қолданылмаған (артық)

элементтері ‘/0’ (нөль-символымен) символымен инициалданады.

Артық элементтер (яғни, жады тиімді жұмсалу үшін) болмас үшін

келесі баяндалуларды қолдануға болады:

static char *[4];

Мұнда әрбір қатардың ұзындығы массивтің сәйкес қатарын

инициалдайтын нақтылы қатармен анықталады.

Символдарды өңдеу библиотекасы. Символдарды өңдеу

библиотекасы символдық мәліметтермен бір қатар пайдалы тексерістер мен

операцияларды орындайтын бірнеше функциялардан тұрады. Әрбір функция

аргумент ретінде int типін немесе EOF (файл соңы) индикаторын ұсынатын

символды қабылдайды. Символдарды өңдеу библиотекасының

функцияларымен жұмыс істеу үшін <ctype.h> тақырыптық файлды қосамыз.

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

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

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

int isdijit (int

c)

Егер с сан болып табылса , онда True мәнін қайтарады және

басқа жағдайларда 0 (false)

int isalpha (int

c)

Егер с әріп болып табылса, онда True мәнін қайтарады

және басқа жағдайларда 0

int isalnum

(int c)

Егер с сан немесе әріп болып табылса, онда True мәнін

қайтарады, және басқа жағдайларда 0.

int isxdijit (int

c)

Егер с он алтылық форматтағы символдардың бірі болса,

true мәнін қайтарады және басқа жағдайларда 0.

int islower (int Егер с төмеңгі регистрдің әрпі болса, true мәнін қайтарады

39

c) және басқа жағдайларда 0.

int isupper (int

c)

Егер с жоғарғы регистрдің әрпі болса, true мәнін қайтарады

және басқа жағдайларда 0.

int tolower

(int c)

Егер с жоғарғы регистрдің әрпі болса,онда tolower с-ны

төмеңгі регистрдің әрпі ретінде қайтарады. Басқа

жағдайларда tolower аргументті өзгеріссіз қайтарады.

int toupper

(int c)

Егер с төмеңгі регистрдің әрпі болса,онда toupper с-ны

жоғарғы регистрдің әрпі ретінде қайтарады. Басқа

жағдайларда toupper аргументті өзгеріссіз қайтарады.

int isspace (int

c)

Егер с бос орын (пробел) символы (' ') , жаңа бет (‘\f’), жаңа

жол (‘\n’), каретканы қайтару (‘\r’), горизонтальді табуляция

(‘\t’) или вертикальді табуляция (‘\v’) болып табылса, онда

true мәнін қайтарады және басқа жағдайларда 0.

int iscntrl (int

c)

Егер с басқарушы символ болса, онда true мәнін қайтарады

және басқа жағдайларда 0.

int ispunct (int

c)

Егер с баспаға шығарылғандағы бейнеленетін символ

болып тпбылса, true мәнін қайтарады, бірақ бос орын

символдаына, сандарға немесе әріптерге қатынасы жоқ

және басқа жағдайларда 0.

int isprint (int

c)

Егер с баспаға шығарылғандағы бейнеленетін символ

болып тпбылса, true мәнін қайтарады, мұнда (' ') бос орын

символын қосқанда және басқа жағдайларда 0.

int isgraph (int

c)

Егер с баспаға шығарылғандағы бейнеленетін символ

болып тпбылса, true мәнін қайтарады, мұнда (' ') бос орын

символын қосқпағанда және басқа жағдайларда 0.

Қатарларды түрлендіру функциялары. қатарларды түрлендіру

функцияларымен жұмыс істеу үшін <stdlib..h> тақырыптық файлды қосу

қажет. Бұл функциялар сандар қатарларын бүтін мәндерге және жылжымалы

нүктелі мәндерге түрлендіреді. Кестеде қатарларды түрлендіру функциялар

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

Кесте-қатарларды түрлендіру функциялары

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

double atof (const char *nPtr) nPtr қатарын double типіне

түрлендіреді.

int atoi (const char *nPtr) nPtr қатарын int типіне

түрлендіреді.

long atol (const char *nPtr) nPtr қатарын long int типіне

түрлендіреді.

double strtod (const char *nPtr, char

**endPtr)

nPtr қатарын double типіне

түрлендіреді.

long strtol (const char *nPtr, char

**endPtr, int base)

nPtr қатарын long типіне

түрлендіреді.

unsigned long strtoul (const char *nPtr, nPtr қатарын unsigned long типіне

40

char **endPtr, int base) түрлендіреді.

Стандартты енгізу/шығару библиотекасының функциялары.

Стандартты енгізу/шығару библиотекасы <stdlib.h> символдық және

қатарлық мәліметтермен жұмыс істеуге арналған бірнеше функциялардан

тұрады. Кестеде стандартты енгізу/шығару библиотекасынан символдар мен

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

Кесте- Стандартты енгізу/шығару библиотекасының символдық мен

қатарларлық функциялары

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

int getchar (void) Стандартты енгізу құралынан келесі

символды енгізеді және бүтін формат

түрінде қайтарады.

char *gets (char *s) S массивіне стандартты енгізу құралынан

символды жаңа жолдың символын немесе

файл соңының индикаторын

кездестіргенше егізеді. Осыдан кейін

массивке шектелетін NULL символы

қосылады.

int putchar (int c) С-да сақталынатын символды баспаға

шығару.

int puts (const char *s) Келесі символы жаңа қатар болатын s

қатарын баспаға шығару.

int sprintf (char *s, const char

*format, …)

Нәтиже экранда бейнеленбей s массивінде

сақталалуымен ерекшеленетін printf

функциясына эквивалентті.

int sscanf (char *s, const char

*format, …)

Енгізу клавиатура арқылы емес s массиві

бойынша орындалалумен ерекшелінетін

scanf функциясына эквивалентті.