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ı tutabilirDizelerle ç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 yaparDizilerin 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.
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ı:
greetingadlı, "Hello" dizgesini tutmaya yetecek alana sahip bir karakter dizisi tanımla (null sonlandırıcıyı hesaba katmayı unutma)greetingdizisini "Hello" dizge sabitiyle başlat- 20 elemanlı
messageadlı ikinci bir karakter dizisi tanımla messagedizisini "Welcome" dizge sabitiyle başlat- Boyutunu belirtmeden
wordadlı üçüncü bir karakter dizisi tanımla ve bunu "Programming" ile başlatarak boyutu C'nin otomatik olarak belirlemesini sağla printfbiçim belirtecini içeren%skullanarak üç dizgenin tamamını yazdır- Her karakter dizisinin ne kadar bellek kapladığını göstermek için
sizeofkullanarak 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: 12Bu 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;
}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
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String FonksiyonlarıKendi başına pratik yap: Online C derleyicisi