📓
Temel C Programlama
  • Temel C Programlama Dersleri -1- Giriş
  • Temel C Programlama -2- Bilgisayar Mimarisi Temelleri
  • Temel C Programlama -3- Bilgisayar Yazılımı Temelleri
  • Temel C Programlama -4- Programlama Dilleri
  • Temel C Programlama -5- Makine Dili, Assembly Dili ve Yüksek Seviye Diller
  • Temel C Programlama -6- C Diline Giriş
  • Temel C Programlama -7- C Geliştirme Aşamaları ve Derleyici Kurulumu
  • Temel C Programlama -8- İlk Program
  • Temel C Programlama -9- Basit Program Örnekleri – 1
  • Temel C Programlama -10- Basit Program Örnekleri – 2
  • Temel C Programlama -11- Aritmetik Operatörler
  • Temel C Programlama -12- C Veri ve Değişken Tipleri
  • Temel C Programlama -13- C Veri ve Değişken Tipleri – 2
  • Temel C Programlama -14- Döngülere Giriş
  • Temel C Programlama -15- İlişki Operatörleri
  • Temel C Programlama -16- For Döngüsü
  • Temel C Programlama -17- While Döngüsü
  • Temel C Programlama -18- do while Döngüsü
  • Temel C Programlama -19- Kararlar ve If Karar Yapısı
  • Temel C Programlama -20- Else ve Else If Yapıları
  • Temel C Programlama -21- Switch Karar Yapısı, break ve continue
  • Temel C Programlama -22- Mantık Operatörleri, Birleşik Operatörler ve Operatör Önceliği
  • Temel C Programlama -23- Fonksiyonlara Giriş
  • Temel C Programlama -24- Basit Fonksiyonlar
  • Temel C Programlama -25- Değer Alan Fonksiyonlar, Sabitler, Önek ve Sonekler
  • Temel C Programlama -26- Fonksiyondan Değer Döndürmek
  • Temel C Programlama -27- Diğer Fonksiyon Konuları ve Recursive Fonksiyonlar
  • Temel C Programlama -28- Diziler
  • Temel C Programlama -29- Diziler -2-
  • Temel C Programlama -30- İşaretçilere Giriş
  • Temel C Programlama -31- İşaretçiler
  • Temel C Programlama -32- Çift İşaretçiler
  • Temel C Programlama -33- İşaretçileri Referans Olarak Aktarmak
  • Temel C Programlama -34- İşaretçi Aritmetiği
  • Temel C Programlama -35- İşaretçiler ve Diziler
  • Temel C Programlama -36- İşaretçi ve Değer Sabitleri
  • Temel C Programlama -37- Fonksiyon İşaretçileri
  • Temel C Programlama -38- Karakterler ve Karakter Dizilerine Giriş
  • Temel C Programlama -39- Karakter Dizileri (String)
  • Temel C Programlama -40- ctype.h Başlık Dosyası ile Karakter İşlemleri
  • Temel C Programlama -41- string.h Başlık Dosyası ile Karakter Dizisi İşlemleri
  • Temel C Programlama -42- stdlib.h ve stdio.h Başlık Dosyaları ile Karakter Dizisi İşlemleri
  • Temel C Programlama -43- Formatlı Giriş ve Çıkış
  • Temel C Programlama -44- Yapılar
  • Temel C Programlama -45- Yapı Uygulamaları ,typedef ve union (birlikler)
  • Temel C Programlama -46- Bit Manipülasyonu ve Bitwise Operatörleri
  • Temel C Programlama -47- Bit Bazlı Uygulamalar (Set, Reset, Toggle)
  • Temel C Programlama -48- Bit Alanları ve Enümeratörler
  • Temel C Programlama -49- Dosya İşlemleri ve fopen() fonksiyonu
  • Temel C Programlama -50- fprintf() ve fclose() ile En Basit Dosya Uygulaması
  • Temel C Programlama -51- Dosya İşaretçisi ve feof() Fonksiyonu
  • Temel C Programlama -52- Dosya Uygulamaları
  • Temel C Programlama -53- Ön İşlemci Komutları (Preprocessor)
  • Temel C Programlama -54- Sonsöz
Powered by GitBook
On this page

Was this helpful?

Temel C Programlama -38- Karakterler ve Karakter Dizilerine Giriş

Bilgisayarların en büyük görevlerinden biri de bizim günlük hayatta kullandığımız yazıları okuyup, işleyip, kaydedebilmesidir. Eğer bilgisayarlar metin üzerinde işlem yapmasaydı hesap makinesinden çok da farklı olmazdı. Bu site sayfasında okuduğunuz yazılar, klavyeden sohbet uygulamasında yazdığınız mesajlar, telefondan attığınız SMS mesajı gibi bütün yazılar bilgisayarlarda karakter yani harf harf olarak ele alınır ve bu harflerin sırasına ise karakter dizisi (string) adı verilir.

Bilgisayar bilimlerinden ve binary kodlamadan bahsettiğimiz yazılarda bilgisayarların sadece ikilik sistemde bir (1) veya sıfır (0) değerleriyle işlem yaptığından bahsetmiştik. Bu ikilik tabandaki değerler sayı değeri olduğu için bunları onluk veya on altılık tabana çevirebiliriz. Fakat bizim yazıda kullandığımız harfler, semboller ve rakamlar bilgisayar sistemlerinde bir anlam ifade etmemektedir. O yüzden kodlama adını verdiğimiz ve sadece bizim anladığımız özel bir kodlama sistemi mevcuttur. Bu kodlama ile belli bir sayısal değere karşılık belli bir harf değeri temsil edilir. Örneğin bilgisayar sisteminde ‘A’ karakterinin karşılığı 65 değeridir. Program yazdırma formatına göre bu 65 değerini sayı olarak da ekrana yazdırabilir metin olarak da. Ekranda görülen A değeri bizim için bir anlam ifade etse de bilgisayar için anlam ifade eden 65 değeridir. Daha ayrıntılı bilgi için ASCII tablosuna bakmanızı rica ederim.

C dilinde karakter verisinin 8-bitlik bir değer bulundurduğunu söylemiştik. Aslında char adı koyulan veri tipi bir baytlık tamsayı değişkeninden çok farklı bir şey değildir. İstersek char değişkenine sayı değeri koyar ve sayı değerleri üzerinden işlem yaparız. Ama adından da anlaşılacağı üzere char değişken tipinin asıl amacı 0-127 arası ana ASCII karakterleri ya da unsigned char ile 0-255 arası genişletilmiş ASCII karakterleri içinde bulundurmaktır. Her char değişkeni sadece bir karakteri içinde bulundurabilir. Örneğin “STM32” yazdırmak için 5 ayrı char değişkenine ihtiyacımız vardır. Bunu istersek ayrı ayrı değişkenlerle yazdırabiliriz ki ancak bizim için bir anlam ifade edebilir. İstersek de char dizi[6] diyerek bir char tipinde dizi tanımlarız ve sıra ile yazdırırız. Dizi olarak yazdırmak hem daha pratik hem de bilgisayar için daha anlamlı olacaktır. Birbirinden bağımsız değişkenler ancak bizim için bir anlam ifade edebilir. Bilgisayar bunların arasındaki bağlantıyı kavrayamaz.

Diğer yüksek seviye programlama dillerinde karakter dizileri için String adında sınıf yapıları bulunabilir ve daha yüksek seviye işlemler yapılabilir. Ama C dilinde String adında bir yapı yoktur!. Evet, C dilinde siz karakter dizilerini sıfırdan yapmak zorundasınız. Fakat dilde gömülü olarak karakter dizileri için özel ayrıcalıklar vardır. Mesela karakter dizilerine değer atarken iki tırnak arasına değer girmek veya karakter dizilerinin otomatik olarak \0 bitirme karakteri ile bitmesi gibi bazı ayrıcalıklar dışında C dilinin standart kütüphanelerinde karakter dizileri ve karakterler için özel fonksiyonlar bulunmaktadır. Bu fonksiyonları kullanmak metin işlemenin olmazsa olmazıdır.

İsterseniz C dilindeki standart kütüphane fonksiyonlarına benzer fonksiyonları siz de yazabilirsiniz. Ama bu standart kütüphane fonksiyonları özenle hazırlandığı için performans ve kararlılık bakımından üst seviyededir. Çok zorunda kalmadıkça hazır fonksiyonları kullanmalısınız.

C dilinde karakter dizileri için üst seviye özellikler olmadığından çok uğraştırıcı ve teferruatlı gibi görünebilir. Fakat burada üstü kapalı hiçbir yer yoktur. Perde arkasında yürüyen hiçbir işlem olmadığı için mantığını kavramanız oldukça kolay olacaktır. Bir sonraki yazımızda örneklerle konumuza devam edeceğiz. Tekrar belirtelim, bu konu zor değil fakat teferruatlı. O yüzden zor gelmese de sıkıcı gelebilir.

PreviousTemel C Programlama -37- Fonksiyon İşaretçileriNextTemel C Programlama -39- Karakter Dizileri (String)

Last updated 5 years ago

Was this helpful?