Menu
Coddy logo textTech

char Dizisi Olarak Stringler

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 12 / 63.

C'de, diğer programlama dillerinde bulunabileceği gibi yerleşik bir dize veri türü yoktur. Bunun yerine dizeler, karakter dizileri olarak temsil edilir. Bu temel kavram, C programlamasında metinlerin nasıl işlendiğini anlamak için gereklidir.

C dilinde bir dize, ardışık bellek konumlarında depolanan karakterler dizisidir. Bir dize oluşturmak için ihtiyacınız olan tüm karakterleri ve özel bir sonlandırıcı karakter için bir ek alanı tutacak kadar büyük bir karakter dizisi bildirirsiniz.

char greeting[6];  // 5 karakter + sonlandırıcı tutabilir
char message[20]; // 19 karaktere kadar + sonlandırıcı tutabilir

Dizelerle çalışmanın en uygun yolu, diziyi bildirirken onları doğrudan bir string literal ile başlatmaktır. C, her bir karakterin dizide saklanmasıyla ilgili ayrıntıları otomatik olarak halleder:

char greeting[6] = "Hello";
// Bu şunları depolar: 'H', 'e', 'l', 'l', 'o', artı özel bir sonlandırıcı

Bir dize sabiti ile başlatırken boyut belirtimini atlayarak C'nin dizi boyutunu otomatik olarak belirlemesine de izin verebilirsiniz:

char greeting[] = "Hello";  // C otomatik olarak bu boyutu 6 yapar

Dizilerin karakter dizileri olduğunu anlamak çok önemlidir; çünkü bu, C'nin metin verilerini nasıl işlediğini açıklar ve sizi bu karakter dizileri üzerinde çalışan dize işleme işlevleriyle çalışmaya hazırlar.

challenge icon

Görev

Kolay

"Hello" dizgesini depolamak için karakter dizileri oluşturmayı ve bunlarla çalışmayı gösteren bir C programı yaz. Programın şunları yapmalı:

  1. greeting adlı, "Hello" dizgesini tutmaya yetecek alana sahip bir karakter dizisi tanımla (null sonlandırıcıyı hesaba katmayı unutma)
  2. greeting dizisini "Hello" dizge sabitiyle başlat
  3. 20 elemanlı message adlı ikinci bir karakter dizisi tanımla
  4. message dizisini "Welcome" dizge sabitiyle başlat
  5. Boyutunu belirtmeden word adlı üçüncü bir karakter dizisi tanımla ve bunu "Programming" ile başlatarak boyutu C'nin otomatik olarak belirlemesini sağla
  6. printf biçim belirtecini içeren %s kullanarak üç dizgenin tamamını yazdır
  7. Her karakter dizisinin ne kadar bellek kapladığını göstermek için sizeof kullanarak her dizinin boyutunu yazdır

Çıktın aşağıdaki biçimde olmalı:

greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12

Bu görev, dizgeleri depolamak için karakter dizilerinin nasıl tanımlanacağını, dizge sabitlerinin karakter dizilerine atandığında otomatik olarak null sonlandırıldığını ve başlatma sırasında boyut belirtimini atladığında C'nin dizi boyutlarını nasıl otomatik olarak hesapladığını anladığını sınar.

Kendin dene

#include <stdio.h>

int main() {
    // TODO: Kodunuzu buraya yazın
    // Karakter dizilerini görevde belirtildiği gibi tanımlayın ve başlatın
    
    // Dizeleri ve boyutlarını yazdırın
    printf("greeting: %s\n", greeting);
    printf("message: %s\n", message);
    printf("word: %s\n", word);
    printf("Size of greeting: %lu\n", sizeof(greeting));
    printf("Size of message: %lu\n", sizeof(message));
    printf("Size of word: %lu\n", sizeof(word));

    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi