Darsliklar C Satrlar

C C Satrlar

Satrlar (strings) — matn bilan ishlashning asosi. C’ning o’ziga xosligi shundaki, unda alohida string turi yo’q: matn char (belgilar) massivi sifatida saqlanadi. Har bir satr oxirida maxsus nol-belgi (\0) turadi. Bu C’da matn bilan ishlashni chuqurroq tushunishni talab qiladi.

Satr (string)C’da nol-belgi (\0) bilan tugaydigan char massivi. Bu nol-belgi satrning qayerda tugashini bildiradi.

Satr yaratish

Satr char massivi sifatida e’lon qilinadi:

#include <stdio.h>

int main(void) {
    char ism[] = "Master Sherkulov";
    printf("%s\n", ism);
    printf("Birinchi belgi: %c\n", ism[0]);
    return 0;
}
Master Sherkulov
Birinchi belgi: M

char ism[] = "..." — matnni belgilar massiviga saqladi. %s butun satrni, %c esa bitta belgini (indeks orqali) chiqaradi. C avtomatik ravishda oxiriga \0 qo’yadi.

string.h kutubxonasi

Satrlar bilan ishlash uchun string.h kutubxonasi ko’plab funksiya beradi. Eng muhimlarini jadvalda ko’ramiz:

Funksiya Vazifasi
strlen() uzunlikni qaytaradi
strcpy() nusxa oladi
strcat() ikki satrni birlashtiradi
strcmp() ikki satrni solishtiradi

Amalda:

#include <stdio.h>
#include <string.h>

int main(void) {
    char ism[] = "UzbekDevs";
    printf("Uzunligi: %zu\n", strlen(ism));
    return 0;
}
Uzunligi: 9

strlen satr uzunligini (nol-belgisiz) qaytardi. Diqqat: bu funksiyalar uchun string.h ni ulash shart.

Satrlarni birlashtirish

C’da satrlarni + bilan birlashtirib bo’lmaydi — buning uchun strcat ishlatiladi:

#include <stdio.h>
#include <string.h>

int main(void) {
    char toliq[50] = "Farrux";
    strcat(toliq, " Sherkulov");
    printf("%s\n", toliq);
    return 0;
}
Farrux Sherkulov

strcat(toliq, " Sherkulov") ikkinchi satrni birinchisining oxiriga qo’shdi. Diqqat: birinchi massivning hajmi ([50]) natijani sig’dira olishi kerak — aks holda xavfli xato yuzaga keladi.

Satrlarni solishtirish

C’da satrlarni == bilan solishtirib bo’lmaydi — strcmp ishlatiladi. U teng bo’lsa 0 qaytaradi:

#include <stdio.h>
#include <string.h>

int main(void) {
    char a[] = "Farrux";
    char b[] = "Farrux";
    if (strcmp(a, b) == 0) {
        printf("Satrlar teng\n");
    }
    return 0;
}
Satrlar teng

strcmp teng satrlar uchun 0 qaytaradi — bu ko’p boshlovchini chalkashtiradigan nozik nuqta. == esa manzillarni solishtiradi, mazmunni emas.

Xulosa

Bu bo’limda C’da satrlarni (char massivi, \0), string.h funksiyalarini (strlen, strcat, strcmp) va satrlarni to’g’ri solishtirishni ko’rib chiqdik. C’da matn — nol-belgi bilan tugaydigan massiv. Keyingi darsda xotira manzili va ko’rsatkichlarga o’tamiz.