10 лекция Сөз тіркестерін өңдеу.

Slides:



Advertisements
Similar presentations
Recursion Prog #include <stdio.h> #include<conio.h> main()
Advertisements

Revision.
Array_strcpy void array_strcpy(char dest[], char src[]) { int i = 0; while (src[i] != '\0') { dest[i] = src[i]; i++; } dest[i] = '\0'; }
Sort the given string, without using string handling functions.
Important Irvine Library Procedures Randomize Randomize –Initializes the seed of the random-number formula by both the Random32 and the RandomRange procedures.
C programming---String. String Literals A string literal is a sequence of characters enclosed within double quotes: “hello world”
© red ©
Programming C/C++ on Eclipe Trình bày : Ths HungNM C/C++ Training.
Strings A special kind of array is an array of characters ending in the null character \0 called string arrays A string is declared as an array of characters.
A String T h e Q u i c k B r o w n F o x 0 str char str[100]; strcpy(str, “The Quick Brown Fox”);
C - Input & Output When we are saying Input that means to feed some data into program. This can be given in the form of file or from command line. C programming.
PRESENTED BY: ER. SUMANPREET KAUR LECTURER IN CE DEPTT. GPCG ASR.
Chapter 5: Data Input and Output Department of Computer Science Foundation Year Program Umm Alqura University, Makkah Computer Programming Skills
Introduction to Programming Strings. 2 Introduction  Until now  We have seen strings in cout  Our old definition: string is a set of char between “”
Strlen() implementation /* strlen : return length of string s */ int strlen(char *s) { int n; for (n = 0 ; s[n] != ‘\0’ ; n++) ; return n; } /* strlen.
Reading the data from the input devices and displaying the results on the screen are the two main tasks of any program. To perform these tasks user friendly.
Lecturer: Omid Jafarinezhad Sharif University of Technology Department of Computer Engineering 1 Fundamental of Programming (C) Lecture 6 Array and String.
IPC Notes Light & Color. The colors of light that we see are the colors of light that an object reflects towards our eyes. ex) blue jeans absorb all colors.
Colors of Pigment The primary colors of pigment are magenta, cyan, and yellow. [
Monkey, Monkey In the Tree. Monkey, monkey in the tree Throw the yellow coconut down to me!
13. Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal.
Types of Operator Arithmetic operator Relational operator Logical operator Assignment operator Increment or decrement operator(unary) Bitwise operator.
HSB to RGB to HEX.
1 Arrays and Pointers The name of an array is a pointer constant to the first element. Because the array’s name is a pointer constant, its value cannot.
Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal may.
13. Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal.
 There are 3 primary colors of light RED, GREEN, & BLUE  When these colors of light are mixed… White Light is produced  This process is called color.
Crazy colors By teacher john. Basic colors! White Black red blue Light green yellow orange purple Grey Light blue green.
MULTI-DIMENSION ARRAY STRING Computer Programming Asst. Prof. Dr. Choopan Rattanapoka and Asst. Prof. Dr. Suphot Chunwiphat.
Tutorial #4 Summer 2005.
Chapter 8 “Character Arrays and Strings” Prepared by: Prof. Ajay M. Patel CE, IDS, NU.
Pointers & Arrays 1-d arrays & pointers 2-d arrays & pointers.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATION
Lecture 8 String 1. Concept of strings String and pointers
Watch Pete the Cat here:
Exercises on String Operations
Basic Graphics Drawing Shapes 1.
מחרוזות קרן כליף.
Colors/Color Words.
CS111 Computer Programming
توابع ورودي-خروجي.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
מ- C++ ל- C קרן כליף.
Colour Theories.
بنام خدا زبان برنامه نویسی C (21814( Lecture 4 Chapter 5
C Characters and Strings – Review Lab assignments
Lecture 11 Strings.
HSB Hue-Saturation-Brightness
Two ways to discuss color 1) Addition 2) Subtraction
Can I color yellow?. Can I color yellow?
UNIT - 3 Noornilo Nafees.
Example: ? str1 str2 _ void salin(char sasaran[], char sumber[]);
12.4 p 471 a) double[] number = {1.05, 2.05, 3.05, 4.05, 5.05};
What Color is it?.
©
(интегрированная среда)
©
Introduction to Computer Organization & Systems
The Pointers of Structures
Strings in C Array of characters is called a string.
Character Arrays char string1[] = “first”;
Strings #include <stdio.h>
13-14 лекция Графикалық режим.
Computer Security Password Policy.
Created for CVCA Physics by Dick Heckathorn 31 May 2K+4
Created By Dick Heckathorn 25 June 2K+3
Created for CVCA Physics by Dick Heckathorn 31 May 2K+4
C Characters and Strings
6-лекция Турбо Си тілі элементтері.
More on operators and procedures in the Linked
Presentation transcript:

10 лекция Сөз тіркестерін өңдеу

Сұрақтар: 1. Символдарды енгізу-шығару функциялары 2. Сөз тіркестерін өңдеу 3. Сөз тіркестерін енгізу-шығару функциялары 4. Сөз тіркестерін өңдейтін басқа функциялар

1. Символдарды енгізу-шығару функциялары Символдарды біртіндеп енгізу-шығару үшін printf(), scanf() функцияларының %c форматы қолданылады. Бұлардан бөлек екі функцияны қарастырайық: getchar() – параметрсіз функция. Пернеден сим-волдарды бір-бірлеп енгізеді. Сөз тіркесі Enter пернесі басылғанша енгізіле береді, оған дейін оны өзгертуге болады. putchar(с) – с символын экранға шығарады. Мысалы, латын алфавиті әріптерін экранға шығару программасы төмендегідей болады:

#include <conio.h> #include <stdio.h> void main() { char z; clrscr(); for(z='A';z<='Z';z++) putchar(z); getch(); } Нәтижесі: ABCDEFGHIJKLMNOPQRSTUVWXYZ

Ал енді осы символдарды ASCII-кодтарымен бірге шығаратын мына программаны көрейік. /* латын алфавиті*/ #include <conio.h> #include <stdio.h> void main() { char z; clrscr(); for(z='A';z<='Z';z++) if (z=='K' || z=='U') printf("\n"); printf(" %c-%d ",z,z); } getch(); Программа жұмысы нәтижесі: A-65 B-66 C-67 D-68 E-69 F-70 G-71 H-72 I-73 J-74 K-75 L-76 M-77 N-78 O-79 P-80 Q-81 R-82 S-83 T-84 U-85 V-86 W-87 X-88 Y-89 Z-90

2. Сөз тіркестерін өңдеу PASCAL тілінде сөз тіркестерін өңдеу кезінде қолданылатын арнайы тип – string бар. Ал Си тілінде мұндай арнайы тип жоқ. Сөз тіркестері char типті бір өлшемді жиым ретінде қарастырылады, яғни сөз тіркесі – нөлдік байтпен аяқталатын char типті бір өлшемді жиым. Нөлдік байт – барлық биттері де нөлге тең байт, ол ´ \0 ´ символдық константасымен анықталады (тіркес соңы белгісі немесе нөл-терминатор). Сондықтан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент көрсетілуі тиіс.

Мысалы, char a[7] деген сипаттау тіркестің 6 символдан тұратынын, ал соңғы байт нөлдік екенін білдіреді. Си тілін-дегі тіркестік (жолдық) константа – қос тырнақшаға алынған символдар жиыны. Мысалы, “Берілген тапсырма” тіркесі, оның соңына нөлдік байтты компилятор автоматты түрде өзі қосып жазады. Айнымалы мәні болатын сөз тіркесін сипаттау кезінде бірден көрсетуге болады, мысалы, char S1[10]=”123456789”, S2[]=”Болат”; Соңғы сөз ұзындығы тіркестің символдары саны-мен анықталады.

Символдық жолдарды немесе тіркестерді бірнеше тәсілмен өңдеуге болады, олар-дың негізгілері: -Тіркестік константаларды қолдану; -Char типті жиымды қолдану; -Char типке сілтейтін нұсқауыштарды пайдалану; -Символдық жолдардан тұратын жиымдарды қолдану. Символдық константа осы жолдар жазылған жады аймағына сілтейтін нұсқауыш болып табылады.

Символдық тіркестер жиымын беру кезін-де компилятор компьютер жадының қажетті көлемін анықтау үшін жиымды сипаттаған-да, оны тіркестік константа арқылы ини-циалдауға болады. Мысалы: char c[]= “определение максимального балла”; Әдеттегі жиым қолданылатын жағдай сияқ-ты бұл жиым аты - с осы жиымның алғашқы элементіне сілтейтін нұсқауыш болып та-былады. Мысалы: c = =&c[0]; *c = =’0’; *(c+1) = = c[1] = = ‘n’;

Сөз тіркестерін анықтау үшін нұсқауыш-тарды мынадай түрде сипаттауға болады: char *c1-“n енгізілген балл”; Осы сипаттауға эквивалентті болып ке-лесі сипаттау есептеледі: static char c1[]=”\n енгізілген балл”; Осы қарастырылған екі сипаттау да с1 тіркесінің нұсқауыш екенін білдіреді. Символдық тіркестерден тұратын жиымда-рды қарастыралық. Бұл жиымдардың әрбір тіркесі символдық жиым болып табылады.

Мысалы, статикалық жиымның сипатталуы келе-сідей түрде жазылуы мүмкін: static char *m[4]={”регистр”, ”ячейка”, ”указатель”, ”элемент”}; бұл жиым символдық жолдарға сілтейтін 4 нұс-қауыш болып табылады. Сонымен, символдық тір-кестер жиымдар болып табылатын болса,онда осы жиымдарға сілтейтін 4 нұсқауыш қарастырылады. 1-сөзге сілтейтін 1-нұсқауыш болып m[0] есептеледі; m[1]– 2- сөзге сілтейтін 2-нұсқауыш болып табылады, т.с.с. Сонымен, әрбір нұсқауыш соған сәйкес тіркес-тің немесе сөздің ең бірінші символына сілтейді. *m[0]==’р’; *m[1]==’я’; *m[2]==’у’; *m[3]==’э’;

3. Сөз тіркестерін енгізу-шығару функциялары Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – 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 Нәтижесі: abc def ghi   jkl

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

Ал sputs( ) функциясы символдардың түстерін өзгертуге мүмкіндік береді #include <stdio.h> #include <conio.h> main() { char str1[]= “abc”; char str2[]= “def\nghi\n”; char str3[]= “jkl”;   puts(str1); textcolor(WHITE); cprintf(“%s”,str2); textcolor(RED); puts(str3);} Нәтижесі: abc def ghi   jkl

Экрандағы символдар түстерін өзгерту үшін TextColor(col); Түстер Кодтары Ашық түстер Кодтары Қара (BLACK) 0 Қошқыл сұр (DARKGRAY) 8 Көк (BLUE) 1 Көкшіл (DARKGRAY) 9 Жасыл (GREEN) 2 Ақ жасыл (LIGHTBLUE) 10 Көгілдір (CYAN) 3 Ақшыл көк (LIGHTCYAN) 11 Қызыл (RED) 4 Қызғылт (LIGHTRED) 12 Күлгін (MAGENTA) 5 Қызғыш (LIGHTMAGENTA) 13 Қоңыр (BROWN) 6 Сары (YELLOW) 14 Сұр (LIGHTGRAY) 7 Ақ (WHITE) 15 Мыс.: TextColor(4); немесе TextColor(12);

Түс коды орнына оның ағылшынша атын бас әріппен беруге болады. Мысалы: textcolor(RED); немесе textcolor(WHITE); Кейбір түстерді жанып-сөніп жымыңдап тұратын етуге болады, ол үшін кодқа 128 (blink) санын қосу керек. Мыс., жымыңдайтын сары түстер былай беріледі: TextColor(14+128); немесе TextColor(YELLOW + BLINK); Фон (“қағаз”) түсін өзгерту үшін мына функция қолданылады: textbackground(color); Бұл да textcolor сияқты, бірақ color тек 0 мен 7 арасында ғана өзгереді. Экранды бір түске бояу үшін осы функцияны жазған соң, экранды тазалау команда-сын орындау қажет. Мысалы: clrscr();

5.Сөз тіркестерімен жұмыс істейтін басқа функциялар 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 19 Келесі мысал: //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), келесі екі сөздің 1-әрпі әр түрлі, олардың ASCII-кодтарының айырмасы – 2 (J - 74, H - 72), ал 3-жолы - 59 (и – 168, у – 227, олардың кодтарының айырмасы 168-227=-59) Мұның нәтижесі: 0 2 -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("Тағы кім болуы мүмкін?"); } 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, "Ура!"); 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); 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-ші сөзден іздейді.

Тыңдағандарыңызға рахмет!