Skip to main content

6-dars. Char seriyasi

Darsning Maqsadlari:

  • Char seriyasi va uning ahamiyatini tushunish.
  • Char seriyasini e'lon qilish, to'ldirish va chiqarish usullarini o'rganish.
  • string.h kutubxonasidagi asosiy funksiyalarni tushunish va ulardan foydalanish.
  • ctype.h kutubxonasining asosiy funksiyalarini o'rganish.
  • Har bir funksiyaning qanday ishlashini misollar orqali ko'rish.

Char Seriyasi Nima?

Dasturlashda char seriyasi - bu belgilar ketma-ketligi. Har bir belgi bitta char tipidagi o'zgaruvchini ifodalaydi. Char seriyasini ko‘pincha matn sifatida tasvirlash mumkin. Dasturlashda ko‘plab vazifalarni bajarishda foydalanamiz.

Masalan, sizga “Salom, dunyo!” matnini ekranga chiqarish kerak bo'lsa, uni char seriyasida saqlash va chiqarish mumkin. Keling, qanday qilib char seriyasini e'lon qilishni o'rganamiz.


Char Seriyasini E'lon Qilish

Char seriyasini e'lon qilish oddiy:

char message[20]; // 20 ta belgi saqlay oladigan char seriyasi

Bu yerda message nomli char seriyasi e'lon qilingani ko'rinadi. Uning uzunligi 20 ta belgi, ya'ni 19 ta belgidan (0 bilan tugagan holda) iborat bo'lishi kerak.

Char seriyalari har doim 0 ('\0') belgisi bilan tugaydi. Bu belgi seriyaning oxirini ko'rsatadi.

Hayotiy Misol:

Aytaylik, siz do'stingizga SMS yozmoqchisiz: “Salom! Qalaysan?” Buni char seriyasida yozishingiz mumkin.

char message[] = "Salom! Qalaysan?"; // Barcha belgilar avtomatik ravishda saqlanadi

Char Seriyasiga Kiritish

Char seriyasiga qiymat kiritish uchun scanf funksiyasidan foydalanamiz. Keling, oddiy misol ko‘raylik:

#include <stdio.h>

int main() {
char name[50]; // 50 ta belgidan iborat char seriyasi

printf("Ismingizni kiriting: ");
scanf("%s", name); // Foydalanuvchidan ismini olish

printf("Salom, %s!\n", name); // Kiritilgan ismi bilan salom berish

return 0;
}

scanf yordamida char seriyasiga belgilarning birini kiritamiz. Qiziqarli fakt: Odatda scanf bilan char seriyalarga faqat bir so'z kiritiladi (bo'sh joyga qadar), agar siz butun jumlani kiritmoqchi bo'lsangiz, fgets funksiyasidan foydalaning.


Char Seriyasini Chiqarish

Char seriyasini ekranga chiqarish uchun printf funksiyasidan foydalanamiz. Misol:

#include <stdio.h>

int main() {
char message[] = "Salom, dunyo!";
printf("%s\n", message); // char seriyasini chiqarish
return 0;
}

Hazil: “Dunyodagi eng tezkor e'lon — ‘Salom’! O'zi har doim chiroyli!” 😄


string.h Kutubxonasi Funksiyalari

string.h kutubxonasi belgilardan iborat seriyalar bilan ishlash uchun ko'plab foydali funksiyalarni o'z ichiga oladi. Keling, ularni birma-bir ko‘rib chiqaylik:

strlen

Bu funksiya char seriyasining uzunligini hisoblaydi.

#include <string.h>

char str[] = "Hello";
int length = strlen(str); // length 5 bo'ladi

strcpy

Bu funksiya bir char seriyasini boshqa char seriyasiga nusxalash uchun ishlatiladi.

char source[] = "Salom";
char destination[50]; // destination uchun joy ajratamiz
strcpy(destination, source); // source dan destination ga nusxalash

strncpy

Bu funksiya strcpy kabi, lekin siz berilgan uzunlikgacha nusxalash imkonini beradi.

char source[] = "Salom, do'stim!";
char destination[20];
strncpy(destination, source, 5); // faqat 5 ta belgi nusxalanadi
destination[5] = '\0'; // oxiriga 0 belgisi qo'shamiz

strcat

Bu funksiya bir char seriyasini boshqa char seriyasiga qo‘shadi.

char greeting[50] = "Salom, ";
char name[] = "Ali";
strcat(greeting, name); // "Salom, Ali" ga aylantiradi

strncat

Bu funksiya strcat kabi, lekin siz berilgan uzunlikgacha qo‘shish imkonini beradi.

char greeting[50] = "Salom, ";
char name[] = "Ali";
strncat(greeting, name, 2); // faqat 2 ta belgi qo'shadi

strcmp

Bu funksiya ikkita char seriyasini taqqoslaydi.

char str1[] = "Salom";
char str2[] = "Salom";
if (strcmp(str1, str2) == 0) {
printf("Ikkita seriya bir xil.\\n");
} else {
printf("Ikkita seriya farq qiladi.\\n");
}

ctype.h Kutubxonasi

ctype.h — bu C dasturlash tilidagi bir kutubxona bo'lib, belgilarni tekshirish uchun bir qator funksiyalarni o'z ichiga oladi. Ushbu funksiyalar har bir belgining turini aniqlash va o'zgartirishda yordam beradi. Keling, har bir funktsiyani ko‘rib chiqamiz.

isalpha

Bu funksiya berilgan belgining alifbo harfi ekanligini tekshiradi.

#include <ctype.h>
#include <stdio.h>

char ch = 'A';
if (isalpha(ch)) {
printf("%c harfi alifbo harfidir.\n", ch);
} else {
printf("%c harfi alifbo harfi emas.\n", ch);
}

isalpha funktsiyasi faqat A-Z va a-z belgilari uchun true (haqiqat) qaytaradi.

isdigit

Bu funksiya berilgan belgining raqam ekanligini tekshiradi.

char ch = '5';
if (isdigit(ch)) {
printf("%c raqamdir.\n", ch);
} else {
printf("%c raqam emas.\n", ch);
}

isdigit yordamida raqamlarni tekshirish dasturlashda foydali bo'ladi, chunki ba'zi hollarda foydalanuvchi kiritgan ma'lumotlar raqamli bo'lishi kerak.

isalnum

Bu funksiya belgining alifbo harfi yoki raqam ekanligini tekshiradi.

char ch = 'g';
if (isalnum(ch)) {
printf("%c alifbo harfi yoki raqamdir.\n", ch);
}

isspace

Bu funksiya belgining bo'sh joy, yangi qator yoki boshqa bo'sh joy belgilari ekanligini tekshiradi.

char ch = ' ';
if (isspace(ch)) {
printf("Bu belgi bo'sh joy.\n");
}

ispunct

Bu funksiya belgining maxsus belgilar ekanligini tekshiradi (masalan, nuqta, vergul, va boshqalar).

char ch = '!';
if (ispunct(ch)) {
printf("%c maxsus belgidir.\n", ch);
}

islower

Bu funksiya belgining kichik harf ekanligini tekshiradi.

char ch = 'a';
if (islower(ch)) {
printf("%c kichik harfdir.\n", ch);
}

isupper

Bu funksiya belgining katta harf ekanligini tekshiradi.

char ch = 'Z';
if (isupper(ch)) {
printf("%c katta harfdir.\n", ch);
}

tolower

Bu funksiya berilgan katta harfni kichik harfga o'giradi.

char ch = 'B';
char lower = tolower(ch);
printf("Kichik harf: %c\n", lower);

toupper

Bu funksiya berilgan kichik harfni katta harfga o'giradi.

char ch = 'c';
char upper = toupper(ch);
printf("Katta harf: %c\n", upper);

Xulosa

Char seriyasi dasturlashda matnlar bilan ishlashning asosiy elementi. Biz char seriyalarini e'lon qilish, kiritish, chiqarish va string.h kutubxonasidan foydalanib bir nechta foydali funksiyalarni ko'rib chiqdik. Ushbu dasturlar orqali belgilarga ishlov berish osonlashadi va kodni yozishni yanada samarali qiladi.

ctype.h kutubxonasi belgilarning turini aniqlash va o'zgartirishda foydali funksiyalarni taqdim etadi. Har bir funksiya o'ziga xos vazifani bajaradi va dasturchilarga belgilarning sifatini tahlil qilishda yordam beradi.


Savollar:

  1. Char seriyasi nima?
  2. strlen funksiyasi qanday ishlaydi?
  3. strcpy va strncpy o'rtasidagi farq nima?
  4. strcmp funksiyasidan qanday foydalanamiz?
  5. isalpha funksiyasi nima uchun ishlatiladi?
  6. isdigit va isalnum o'rtasidagi farq nima?
  7. isspace funksiyasi qanday vazifani bajaradi?
  8. tolower va toupper funksiyalari qanday ishlaydi?