Temel C Programlama -40- ctype.h Başlık Dosyası ile Karakter İşlemleri

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.

#include <ctype.h>

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!.

http://www.cplusplus.com/reference/cctype/

ctype.h fonksiyonları

ctype.h kütüphane dosyasında yer alan kütüphane fonksiyonları şu şekildedir.

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.

#include <stdio.h>
#include <ctype.h>

main()
{
    char c = 'a';
    if (islower(c))
    puts("c adli degisken kucuk harftir");
    else
    puts("c adli degisken buyuk harftir");
}

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!!!

Last updated