C-stili Karakter Dizileri Bölüm 2
Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası — ders 68 / 74.
Belirli bir boyuta sahip C-stili bir dize (string) tanımladığınızda, saklamak istediğiniz karakterler için yeterli alanın yanı sıra boş karakter (null character) için de bir ek alan ayırmanız gerektiğini unutmamak önemlidir.
Örneğin:
// Doğru: "Hello" için 6 alan gerekir
// (5 harf + '\0')
char str1[6] = "Hello";// Yanlış: Dizi çok küçük!
// "Hello" için 6 boşluk gerekiyor, ancak sadece 5 tane verilmiş
char str2[5] = "Hello";
// Bu sorunlara neden olabilir// Doğru: Fazladan alan olması sorun değil
// Yeterinden fazla alan (10 > 6 gerekli)
char str3[10] = "Hello";// Karakter sayısını gösteren örnek:
char name[5] = "John"; // 5 boşluk gerektirir:
// J + o + h + n + '\0' = 5 karakterC-stili bir dizedeki karakterlere dizi notasyonunu kullanarak tek tek erişebilirsiniz:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'Dizinin sınırlarını aşmadığınız sürece, C-stili bir dizedeki karakterleri de değiştirebilirsiniz:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // "Jello" çıktısını verirAncak, bir C-stili dizeye bildirildikten sonra doğrudan yeni bir dize atayamazsınız. Dizeleri kopyalamak için, ilerleyen derslerde ele alacağımız strcpy gibi fonksiyonları kullanmanız gerekecektir.
Kopya kağıdı
C-stili dizgileri (strings) bildirirken, tüm karakterler artı bir tane de boş sonlandırıcı (null terminator) '\0' için yer ayırın:
// Doğru: "Hello" için 6 boşluk gerekir (5 harf + '\0')
char str1[6] = "Hello";
// Yanlış: Dizi çok küçük!
char str2[5] = "Hello"; // Bu sorunlara yol açabilir
// Doğru: Fazladan alan olması sorun değildir
char str3[10] = "Hello";Dizi notasyonunu kullanarak tekil karakterlere erişin:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'Dizi sınırları içindeki karakterleri değiştirin:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // "Jello" çıktısını verirNot: Bildirimden sonra bir C-stili dizgiye doğrudan yeni bir dizgi atayamazsınız. Dizgi kopyalama için strcpy gibi fonksiyonlar kullanın.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Giriş/Çıkış Temelleri
cout İfadesicin İfadesiString GirdisiÖzet - 120'ye KadarÖzet - Doğru veya Yanlış3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıÖzet - Değişkenleri BaşlatmaTür Dönüştürme Bölüm 1Tür Dönüştürme Bölüm 29Döngüler
For Döngüsü Bölüm 1While DöngüsüDo While DöngüsüBreakContinueFor Döngüsü Bölüm 2İç İçe DöngülerSonsuz DöngülerÖzet - Dinamik Input12Karakter Dizileri
C-stili Karakter Dizileri Bölüm 1C-stili Karakter Dizileri Bölüm 2Karakter Dizisi İşlemleriKarakter Dizisi Fonksiyonları Bölüm 1Karakter Dizisi Fonksiyonları Bölüm 2