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 tugaydigancharmassivi. 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.