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
#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
#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ı
char fruit[] = ____; /* "Elma" dizesi */
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 |