Dizgi (String)


Yazan: Şadi Evren ŞEKER

Bir dilde bulunan ve o dilin tanımlı olan alfabesi içerisindeki sembollerin çeşitli sayılarda ve çeşitli sırada dizilmesi ile elde edilen yazılardır.

Örneğin bir dildeki alfabe aşağıdaki şekilde tanımlı olsun:

1 = {0,1}

Buna göre dilimizde sadece “0″ ve “1″ sembolleri tanımlı demektir. Bu dilde örneğin w1=0 veya w2=10101011010 gibi bir dizgi elde etmek mümkündür.

Bir dizginin belirli bir kımını içeren dizgiye ise alt dizgi adı verilir. Örneğin w3=1011 dizgisi  w2 dizgisinin bir altdizgisidir.

Ayrıca iki dizginin arka arkaya eklenmesine de üleştirme(concatenation) denilir.Örneğin w1 ile w3 dizgilerinin üleştirilmiş hali w4=01011 olur.

C ile dizgi okuma

C dilinde klavyeden dizgi (String) okumak için kullanılan en basit fonksiyon scanf fonksiyonudur. Bu fonksiyonu basit bir uygulamada aşağıdaki şekilde kullanabiliriz:

Yukarıdaki kodda, 5. satırda tanımlalan karakter dizisi (string) içerisine 7. satırda %s parametresi ile scanf fonksiyonu kullanılarak bir dizgi okunmuştur. Bu dizginin içeriği kodun 8. satırında ekrana basılmıştır.

Örneğin yukarıdaki kod aşağıdaki şekilde çalıştırılabilir:

Görüldüğü üzere, kullanıcı isim olarak “ali” girmiş ve ekranda, girdiği bu dizgiyi görmüştür. Ancak aynı kodu çalıştırarak aşağıdaki şekilde bir dizgi girilirse problem yaşanır:

Yukarıdaki girdide “ali baba ve kirk haramiler” şeklinde 5 kelimeden oluşan bir dizgi girilirken, bu dizginin sadece ilk kelimesi scanf tarafından okunmuştur. Aslında burada bir hata yoktur çünkü scanf fonksiyonu, boşluk karakteri veya  satır sonu gibi karakterlere kadar olan dizgileri okur. Yukarıdaki gibi birden fazla kelimeden oluşan dizgiler okunmak istendiğinde, aşağıdaki kodda da gösterilen gets fonksiyonu kullanılabilir:

Yukarıdaki kodda bir önceki koda göre sadece 7. satırda bulunan scanf fonksiyonu, gets fonksiyonu ile değiştirilmiştir. Kodumuzun yeni halini çalıştırdığımızda, aşağıdaki şekilde birden fazla kelime okuyabildiğimizi görürüz:


« Alfabe (Abece, Alphabet)   |   Alt Dizgi (Substring) »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Toplam 3 yorum var.

  1. Hamming Mesafesi (Hamming Distance) : bilgisayar.kavramlari.com | 05 Aug 2008, 11:35

    [...] mesafesi bilgisayar bilimlerinde aynı uzunluktaki iki dizgi (string) arasında, birbirine dönüşmesi için gerekli olan yer değiştirme sayısını verir. Yani [...]

  2. Muzaffer Boran | 06 Jan 2010, 16:29

    hocam örnegin scanf(”%s”,isim) yazdıgımda program uzun giris yaptıgımda
    sapıtıyor gets(isim) yazdıgımda ise o bolümü atlıyor gets’i nasıl
    kullanacagımı gösterirmisiniz?

  3. Şadi Evren ŞEKER | 07 Jan 2010, 06:01

    sorunuza cevap olması açısından yukarıdaki yazının içerisine hem scanf hem de gets kullanan basit birer örnek ekliyorum, farkları zaten bu örnekten anlaşılır.

    umarım yardımcı olur

    başarılar

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Dizgi (String)' isimli yazı 02 Aug 2008 tarihinde, saat: 01:32 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 713 defa okunmuştur.

Benzer yazıları Automata (otomatlar, özdevinirler), Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar