Sətirlər
Sətirlər cərgələrin xüsusi halıdır. Cərgə elementlərinin tipinin char
olduğu hal. char
tipi simvol tipi adlanır. Başqa sözlə, sətirlər simvollar cərgəsidir. İlk baxışda sətirlər elə də əhəmiyyət kəsb etmir və onlarla işləmək üçün bir neçə standart funksiya təyin olunur.
Sətirlərin tətbiq sahəsi çox genişdir, həm nüvədə, həm də istifadəçi proqramlaşdırmasında sətirlərdən çox geniş istifadə olunur. Misal üçün, çat proqramında daxil etdiyimiz hər hansı sətir internet şəbəkəsinə qoşulmuş digər kompüterdə yerinə yetirilən çat proqramına ötürülən zaman, bir neçə dəfə bir yerdən (yaddaşda) digər yerə köçürülür.
İstifadəçinin daxil etdiyi parolu yoxlamaq üçün biz proqramda sətirlərin müqayisəsi funksiyalarından istifadə edirik və s. Sətirlərlə işləyən zaman diqqət verilməsi lazım gələn məsələlərdən biri də, sətirin sonu məsələsidir. Sətirlərin sonunu bildirmək üçün '\0'
simvolundan istifadə olunur. Sətir funksiyaları bu simvola rast gəldikdə, sətrin yerdə qalan hissəsini inkar edirlər.
//prog_7_1.c
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
char set[12]; /* 12 elementdən ibarət sətir elan edirik */
strcpy(set,"Azərbaycan");
printf("%s\n",set);
return 0;
}
Nümunə
Proqramı yerinə yetirək.
user@gnu_linux:~/prg# gcc prog_7_1.c -o prog_7_1
user@gnu_linux:~/prg#
user@gnu_linux:~/prg# ./prog_7_1
Azərbaycan
user@gnu_linux:~/prg#
İzahı:
Burada biz 12 elementdən ibarət set
adlı sətir elan edirik. Daha sonra, strcpy
funksiyası vasitəsilə set sətrinə "Azərbaycan" qiymətini mənimsədirik. strcpy
funksiyasi string.h
faylinda təyin olduğundan, #include <string.h>
vasitəsilə string.h
faylini proqrama əlavə edirik. strcpy
funksiyasının sintaksisi aşağıdakı kimidir.
char * strcpy(char *s1, char *s2);
strcpy
funksiyası s1
sətrinə s2
sətrini mənimsədir. Sətirlərlə işləyən digər funksiyalara baxaq.
strlen
funksiyası.
int strlen(char *s);
s
sətrində olan elementlərin sayını qaytarır. '\0'
simvolunu hesaba almır.
char * strncpy(char *s1, char *s2, int n);
s2
sətrinin ilk n
elementini s1
-ə köçürür (s1
-in əvvəlindən başlayaraq).
int strcmp(char *s1, char *s2);
Bu funksiyadan sətirlərin müqayisəsi üçün istifadə edirlər. Əgər s1
sətri s2
sətri ilə eynidirsə, onda funksiya 0 qiymətini qaytarır, əgər s1
-in elementlərinin sayı s2
-dən azdırsa, onda <0
, əks halda, >0
qiymətini qaytarır.
char * strcat (char *s1, char *s2);
Bu funksiya s1
-in sonuna s2
-ni əlavə edir.