CodeBlanks Logo Icon CodeBlanks

String literal

  • C kursu
  • Başlangıç
  • Ders 60/116
  • 4 dk

Çift tırnak ile string literal ve escape dizilerini öğrenirsin.

String literal ile dize oluşturmak

Çift tırnak içinde yazdığın metin bir string literal'dir. C, otomatik olarak sonuna '\0' ekler; senin ayrıca yazmana gerek yoktur.

char city[] = "Bursa";
/* city: {'B','u','r','s','a','\0'} */

Burada dizi boyutu otomatik hesaplanır: 5 harf + 1 null = 6 eleman. String literal kullanmak, karakterleri tek tek yazmaktan daha kısa ve okunurdur.

Dizi boyutu hesaplama

String literal atarken dizi boyutunu boş bırakmak ([]), C'nin boyutu senin için hesaplamasını sağlar. Ancak elle boyut verirsen, null karakter için bir fazlasını yazmalısın.

char s1[] = "Merhaba";  /* 8 eleman: 7 harf + 1 null */
char s2[8] = "Merhaba";  /* aynı: 7+1 */

Eğer char s2[7] = "Merhaba"; yazarsan null karaktere yer kalmaz ve bu tanımsız davranıştır. sizeof(s1) tüm dizinin boyutunu verir; bu, harf sayısından bir fazladır.

Uygulama Şehir dizesi tanımla ve yazdır

Bir char dizisini "Bursa" string literal'i ile başlat. sizeof ile byte boyutunu yazdır; ardından printf %s ile dizeyi yazdır. Çıktı önce boyut, sonra dize olmalı.

Başlangıç kodu

main.c
#include <stdio.h>

int main(void) {
    /* char dizisini "Bursa" literal'ı ile başlat */
    /* sizeof ile byte boyutunu yazdır */
    /* printf %s ile dizeyi yazdır */
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int main(void) {
    char city[] = "Bursa";
    printf("%zu\n", sizeof(city));
    printf("%s\n", city);
    return 0;
}

Beklenen çıktı

6
Bursa

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 String literal ataması

Soru
char fruit[] = ____;  /* "Elma" dizesi */
Cevap
char fruit[] = "Elma";  /* "Elma" dizesi */

Açıklama: "Elma" çift tırnaklı bir string literal'dir.

2 Aşağıdakilerden hangisi geçerli bir string literal'dir?

  • "Merhaba" Doğru cevap
  • `Merhaba`
  • {Merhaba}
  • 'Merhaba'

Açıklama: "Merhaba" çift tırnaklı bir string literal'dir.

3 Dize tanımlarını eşleştir

Kavram Anlamı
"Ali" string literal
char karakter türü
\0 otomatik eklenir
sizeof dizinin byte boyutu

Başlangıç bölümündeki tüm dersler