Temel C Programlama -40- ctype.h Başlık Dosyası ile Karakter İşlemleri
Last updated
Was this helpful?
Last updated
Was this helpful?
Artık karakter dizilerini anlattığımıza göre bunlar üzerinde nasıl çalışabileceğimizi göreceğiz. Bunun için bol bol kütüphane fonksiyonu kullanmamız gerekecektir. Hatta bazı kütüphane fonksiyonları bizim için hayati bir öneme sahiptir ve onlar olmadan bazı noktalarda tıkanıp kalabiliriz. Örneğin bir veri iletişiminde tam sayı tipindeki bir değeri karakter dizisine çevirmemiz gerekebilir veya karakter dizisini üzerinde aritmetik işlem yapabilmeniz için tam sayı değere çevirmeniz gerekebilir. Unutmayın, “10” değeri ile 10 değeri aynı değildir siz örneğin bir seri iletişim uygulamasında bunu “10” diye alsanız da üzerinde işlem yapmak için tam sayıya çevirmeniz gerekecektir.
Bunun için C dilinde standart kütüphanenin içerisinde karakterler ve karakter dizileriyle alakalı fonksiyonlar gelmektedir. Karakter dizileri üzerinde çalışırken içli dışlı olacağımız kütüphane dosyalarını baştan belirtelim:
sdio.h
stdlib.h
ctype.h
string.h
Bizim bundan sonra anlatacağımız konular bu başlık dosyalarında yer alan fonksiyonları size öğretme yönünde olacak. Fakat siz program yazarken referanstan sürekli bu başlık dosyalarına bakmalı ve içindeki fonksiyonları sentaksa uygun olarak yazdığınıza emin olmalısınız. Kimse ezberden program yazmıyor. Bu tarz kütüphane dosyaları kullanılırken muhakkak kütüphanenin referans kılavuzuna bakmamız gerekiyor. Sizin burada öğrenmeniz gereken hangi iş için hangi fonksiyonun kullanılacağı, bu fonksiyonların neler yapabildiği, elimizde ne tarz araçlar olduğudur. Çünkü bu fonksiyonlardan bazılarını ayda belki yılda bir kere kullanmanız gerekebilir. Bu durumda işiniz düştüğünde bunun nerede olduğunu bilmeniz sizin için yeterli olacaktır.
Karakter İşlem Kütüphanesi (ctype.h)
C dilinin standart kütüphanesinde ctype.h adında bir başlık dosyası yer almaktadır. Bu başlık dosyasının özelliği bünyesinde sadece karakter işlem fonksiyonlarını bulundurmasıdır. Sadece karakterler üzerinde işlem yapabilse de karakter dizilerinin karakterlerden meydana geldiğini unutmayınız. Yani bir döngü yardımıyla bütün bir karakter dizisi üzerinde teker teker işlem yapabiliriz. Bu fonksiyonlar dilin çekirdek yapısına ait fonksiyonlar değildir. O yüzden standart kütüphane içerisinde zikredilmektedir. C dili kendi haliyle tamamen çıplak bir dildir ve herhangi bir ek fonksiyon, kütüphane veya sınıf içermez. Ekrana yazı yazdırmak için bile bir kütüphane fonksiyonu kullandığımızı daha önceden anlatmıştık. ctype kütüphanesini kullanabilmek için öncelikle #include ile ana programa dahil etmemiz gerekir.
Bundan sonrası kütüphane fonksiyonlarına bakmak ve ihtiyaç halinde bu fonksiyonları kullanmaktır. Fonksiyonları akıllıca kullanmak ise tamamen size bağlıdır. Hangi fonksiyonu nerede, hangi yöntem için kullanacağınızı referansa bakarak öğrenseniz de bunu doğru yerde kullanabilmek yine size bağlıdır. Şimdi ctype.h başlık dosyasında yer alan fonksiyonların işlevlerine kısaca bakalım. Bunun için ben şu bağlantıda yer alan referans sayfasını açıyorum ve fonksiyonlara bakıyorum. Kimse ezberden bunları yazamaz!.
ctype.h fonksiyonları
ctype.h kütüphane dosyasında yer alan kütüphane fonksiyonları şu şekildedir.
isalnum
Karakterin alfanümerik olup olmadığını denetler.
isalpha
Karakterin harf olup olmadığını denetler.
isblank
Karakterin boşluk olup olmadığını denetler.
iscntrl
Karakterin kontrol karakteri olup olmadığını denetler.
isdigit
Karakterin rakam olup olmadığını denetler.
isgraph
Karakterin grafik temsili olup olmadığını denetler.
islower
Karakterin küçük olup olmadığını denetler.
isprint
Karakterin yazdırılabilir olup olmadığını denetler.
ispunct
Karakterin noktalama işareti olup olmadığını denetler.
isspace
Karakterin beyaz boşluk olup olmadığını denetler.
isupper
Karakterin büyük olup olmadığını denetler
isxdigit
Karakterin on altılık bir rakam olup olmadığını denetler.
tolower
Karakter büyükse küçük yapar.
toupper
Karakter küçükse büyük yapar.
Görüldüğü gibi fonksiyonların işlevi gayet basittir. Bu fonksiyonları metin işlemede gerektiği zaman kullanmanız gerekecektir. Örnek vermek adına basit bir örnek yazıyorum.
Program çalışınca ekran görüntüsü şu şekilde olacaktır.
Siz de lazım olduğu zaman ctype.h kütüphane dosyasındaki fonksiyonları referansa bakarak kullanabilirsiniz. Ben C referansı yazmadığım ve temel C programlama eğitimi verdiğim için referans sayfalarını nasıl okuyacağınızı öğretmek istiyorum. Bunu C standartından da okuyabilirsiniz. Standartlar programlama dilleri için birinci elden kaynaktır. Biz daha pratik olan referanslardan ctype.h içindeki isalnum fonksiyonuna bakalım.
Her dil referansında veya kütüphane kılavuzunda belli başlı ögelerin olduğunu görürüz. Bunlardan ilki fonksiyon prototipi adını verdiğimiz fonksiyonun iskeletidir. Bu prototip ile fonksiyonu nasıl kullanacağınız belli olur. Fonksiyon adı ne işe yaradığına dair bir ipucu olsa da bu prototipte yer alan argümanların adı da yine aldığı değerlerin ne olduğuna dair bir ipucu olacaktır. Fakat bu prototipe bakarak fonksiyonun ne işe yaradığını öğrenemezsiniz. Burada öğreneceğiniz şey fonksiyonunun döndürdüğü değer, aldığı argüman sayısı, sırası ve tipi ve fonksiyon adıdır. Bu sayede düzgün bir sözdizimi ile fonksiyonu kullanabilirsiniz.
Açıklama kısmında ise (bazı kaynaklarda description diye başlık konur.) fonksiyonun ne işe yaradığı açıklanır. Kaynaklar programcılara yönelik yazıldığından uzun uzadıya fonsiyon mantığı, nasıl kullanacağınız, örnek kod gibi şeylerle açıklanmaz. Genelde fonksiyonun ne işe yaradığı bir veya iki cümle ile açıklanır ve geçilir. Eğitim içeriklerinde bu daha ayrıntılı açıklanmaktadır.
Parametreler ise fonksiyonun aldığı argümanların açıklamasıdır. Fonksiyonun açıklaması ne işe yaradığı yönünde parametreler de argümanların ne olması gerektiği yönündedir. Bu açıklama sayesinde fonksiyonun kaynak kodunu alıp incelemek zorunda kalmazsınız.
Return value ise fonksiyonun döndürdüğü değerdir ve dokümentasyonda en son olarak bu açıklanır. Eğer gerek duyulursa bazı kaynaklarda beraberinde örnek kodla gelebilir. Ama genelde örnek kod olmadan bunları okuyup fonksiyonu sorunsuzca kullanabilmeniz gerekir.
Unutmayın, Bunları okuyup fonksiyonu kullanamıyorsanız programcı olamazsınız!!!