Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekC++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
513.02 Кб
Скачать

[Gl]Дәріс №10. Сөз тіркестерін өңдейтін басқа функциялар.[:] Сөз тіркестерін өңдейтін басқа функциялар

Сұрақтар:

1. Сөз тіркестерін енгізу-шығару функциялары.

2. Сөз тіркестерін өңдейтін басқа функциялар.

1. Сөз тіркестерін енгізу-шығару функциялары

Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – scanf()немесе gets() қолданылады, ал олардың прототиптері stdio.h тақырыптық файлында болады.

Scanf( ) функциясы тіркестік айнымалылар мәнін %s форматымен енгізеді, бірақ ол тіркесті тек бірінші босорын таңбасына дейін ғана енгізе алады.

Ал gets() функциясы арасында босорыны бар тіркестерді енгізеді, енгізу ENTER пернесімен аяқ-талады. Екі функция да тіркес соңына нөлдік байт қо-сып жазады. Оның үстіне тіркес – символдық жиым, ал жиым аты – оның компьютер жадындағы алғашқы адресіне сілтеме болғандықтан, тіркестік айнымалы атының алдына «&» символы жазылмайды.

Бір мысал келтірейік.

/*сөз тіркесін шығару*/

#include <conio.h>

#include <stdio.h>

void main()

{

char b[]=”Сезам, ашыл!”;

clrscr();

printf("%s",b);

getch();

}

Мұндағы b жиымының ұзындығы 13 символ, яғни сөздер ұзындығынан 1-ге артық.

Сөз тіркестерін шығару функциялары:

printf(), сprintf(), puts(), cputs()

printf() – экранға формат арқылы сөз тір-кесін шығарады;

сprintf() – экранға printf() сияқты формат арқылы сөз тіркесін шығарады, тек олар-дың түстерін textcolor() және textback-ground() функциялары арқылы өзгертуге мүмкіндік береді;

puts(str) – экранға сөз тіркесін шыға-рып, курсорды бірден келесі жолдың ба­ сына алып барады, мұндағы str – тіркес-тік константа немесе тіркестік айныма-лы. Бұлар stdio.h тақырып файлы бойынша жұмыс істейді.

Жоғарыдағы функциялар символдық жиымды нөл-дік байтқа дейін шығарады. printf() функциясы символ тіркесі шығарылған соң, курсорды келесі жолға көшір-мейді, ол үшін арнайы формат (\n) жазылуы тиіс.

Ал puts( ) функциясы символдар шығарылған соң, авто-матты түрде курсорды келесі жол басына көшіреді.

#include <stdio.h>

#include <conio.h>

main()

{ char str1[]= “abc”;

char str2[]= “def\nghi\n”;

char str3[]= “jkl”;

  puts(str1);

puts(str2);

puts(str3);

}

Нәтижесі:

abc

def

ghi

 

jkl

cputs(str) – экранға сөз тіркестерін шығарып, олардың түстерін textcolor() және textbackground() функциялары арқылы өзгертуге мүмкіндік береді, conio.h тақырып файлы бойынша жұмыс істейді.

Сөз тіркестерімен орындалатын басқа операциялар да стандартты функциялар арқылы атқарылады. Ол функциялар жұмыс істеуі үшін string.h тақырыптық файлы қажет.

Жалпы сөз тіркестерін қолдану үшін stdlib.h немесе string.h тақырыптық файлдары қолданылады.

2.Сөз тіркестерімен жұмыс істейтін басқа функциялар

1) strlen(str) функциясы str сөз тір-кесіндегі символдар санын (соңғы нөлді есепке алмайды), яғни жолдың ұзындығын анықтайды, оның типі int, тақырыптық файлы <string.h>

2) strcat(stroka1,stroka2) функциясы тір-кестерді біріктіру үшін қолданылады. Ол stroka1 және stroka2 тіркестерін бірік-тіріп, нәтижені stroka1 айнымалысына меншіктейді.

Мысал. Бірнеше сөз тіркестерінің ұзындығын анықтайтын программа құру керек.

//использование функции strlen(str)

#include <conio.h>

#include <stdio.h>

#include <string.h>

main ()

{

static char t[]=Сведения о наших студентах.;

clrscr();

printf(“%d\n”,strlen(t));

printf(“%d\n”,strlen(“Сведения о наших студентах.”));

printf(“%d\n”,strlen(“КазНУ им.аль-Фараби”));

printf(“%d\n”,strlen(“”));

getch();

}

Мұның нәтижесі:

27

27

19

0

Келесі мысал:

//strcat(str1, str2) ф-циясын пайдалану

#include <conio.h>

#include <stdio.h>

#include <string.h>

main ()

{

char str1[50]=“Изучаем язык Си, ";

char str2[]=“скоро сдадим экзамен.";

clrscr();

printf("%s\n",strcat(str1,str2));

puts(str1); // экранға шығару

puts(strcat(“Если будем учиться хорошо, ",str2));

getch();

}

Мұның нәтижесі:

Изучаем язык Си, скоро сдадим экзамен.

Изучаем язык Си, скоро сдадим экзамен.

Если будем учиться хорошо, скоро сдадим экзамен.

3) strcmp(stroka1,stroka2) функциясы екі сөз тіркесін салыстыру үшін қолданылады. Егер олар бірдей болса, функцияның мәні 0-ге тең болады, әйтпесе ол екі тіркестің айырмасын береді. Егер stroka1<stroka2 болса, нәтиже <0 болады, ал stroka1> stro-ka2 болса, нәтиже>0 болады. Көбінесе екі тіркестің бірдей еместігін анықтау үшін қолданылады.

Мысалы:

main ()

{

printf("%d\n",strcmp("Привет","Привет"));

printf("%d\n",strcmp("Jello","Hello"));

printf("%d\n",strcmp(" Приветствие", "Приветствую"));

getch();

}

Мұның нәтижесі:

0 2 -59

Алғашқы екі сөз бірдей (0), келесі екі сөздің 1-әрпі әр түрлі, олардың ASCII-кодтарының айырмасы – 2 (J - 74, H - 72), ал 3-жолы - 59 (и – 168, у – 227, олардың кодтарының айырмасы 168-227=-59)

//strcmp(str1, str2) функциясын пайдалану

#include <conio.h>

#include <stdio.h>

#include <string.h>

#define NAME "Ритчи"

main ()

{ char f[20];

puts("Си тілінің авторы кім?");

gets(f);

while(strcmp(f,NAME)!=0)

{puts("Тағы кім болуы мүмкін?");

gets(f);

}

puts("Дұрыс!");

getch();

}

Нәтижесі:

Си тілінің авторы кім?

Керниган

Тағы кім болуы мүмкін?

Ритчи

Дұрыс!

4) strcpy(str1, str2) функциясы сөздердің көшірмесін алу үшін қажет, мұндағы str2 айнымалысындағы сөз тіркесі str1 айнымалысына көшіріледі.

Мысалы:

// strcpy(str1, str2) функциясын қолдану

#include <conio.h>

#include <stdio.h>

#include <string.h>

main ()

{char str1[21];

strcpy(str1, "Как дела, друг?");

puts(str1);

strcpy(str1, "Ура!");

puts(str1);

getch();

}

Нәтижесі:

Как дела, друг?

Ура!

2-мысал:

//strcpy(str1, str2) функциясын пайдалану

#include <conio.h>

#include <stdio.h>

#include <string.h>

#define stroka "функция копирования"

main ()

{

char *ptr=stroka;

char res[25];

clrscr();

puts(ptr);

puts(res);

strcpy(res,ptr);

puts(ptr);

puts(res);

getch();

}

Нәтижесі:

функция копирования

 

функция копирования

функция копирования

5) strstr(str1,str2) функциясы 2-ші көрсетілген жолды 1-ші жолдың ішінен іздейді.

6) strset(str,ch) функциясы берілген тіркестегі барлық символдарды көрсе-тілген тіркеске (ch) ауыстырады.

7) strtod(str1,str2) функциясы беріл-ген тіркесті double типті санға ауыс-тырады.

8) strchr(str,c) функциясы берілген тіркестегі коды көрсетілген символдың позициясын анықтайды.

9) strrev(str) функциясы берілген тір-кестің барлық символдарын керісінше бейнелейді.

10) strpbrk(str1,str2) функциясы 2-ші тіркестің кез келген символын 1-ші сөзден іздейді.[kgl]

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