C Öğreticisi 14 (Dizeler(Stringler))

Bu yazılar www.tutorialspoint.com/cprogramming/ adresindeki yazı dizilerinin çevirileridir.

Dizeler aslında ‘\0’ null karakteri ile sonlanan bir boyutlu karakter dizileridir. Bu nedenle, null ile sonlandırılmış bir dize, dize ve ardından null içeren karakterleri içerir.

Aşağıdaki tanımlama ve başlatma “Merhaba” sözcüğünden oluşan bir dize oluşturur. Null karakterini dizinin sonunda tutmak için, dizeyi içeren karakter dizisinin boyutu “Merhaba” sözcüğündeki karakter sayısından bir fazladır.

char mesaj[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

Dizi başlatma kuralını izlerseniz, yukarıdaki ifadeyi aşağıdaki gibi yazabilirsiniz -

char mesaj[] = “Hello”;

Aşağıda C / C ++ ‘da yukarıda tanımlanan dizenin bellek sunumu verilmiştir -

Aslında, null karakterini dizenin sonuna bir sabit olarak siz koymazsınız. C derleyicisi diziyi başlattığında ‘\0’ değerini dizenin sonuna otomatik olarak yerleştirir.

Yukarıda belirtilen dizeyi yazdırmaya çalışalım -

#include <stdio.h>

int main () {

char mesaj[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

printf(“mesaj:%s\n”, mesaj );

return 0;

}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

mesaj: Hello

C, null ile sonlandırılmış dizeleri işleyen çok çeşitli fonksiyonları destekler -

Aşağıdaki örnek, yukarıda belirtilen fonksiyonlardan bazılarını kullanır -

#include <stdio.h>

#include <string.h>

int main () {

char str1[12] = “Hello”;

char str2[12] = “World”;

char str3[12];

int len ;

/* str1’i str3’e kopyalıyoruz */

strcpy(str3, str1);

printf(“strcpy( str3, str1) : %s\n”, str3 );

/* str1 ve str2’yi birleştiriyoruz */

strcat( str1, str2);

printf(“strcat( str1, str2): %s\n”, str1 );

/* birleştirmeden sonra str1’in uzunluğu */

len = strlen(str1);

printf(“strlen(str1) : %d\n”, len );

return 0;

}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

strcpy( str3, str1) : Hello

strcat( str1, str2): HelloWorld

strlen(str1) : 10

https://www.tutorialspoint.com/cprogramming/c_strings.htm

Last updated