Sayfayı Yazdır | Pencereyi Kapat


Karakter İşleme

Kategori: C ++
Eklenme Tarihi: 23 Haziran 2005
Zaman: 22 Mayıs 2012 12:39
Samanalevi Netkafe - http://www.samanalevi.com/bilgisayaroku/67.Karakter_ISleme.html

6.   Karakter işleme

     Birçok program sayıların yanı sıra metinler üzerine işlem yapar. İlk akla gelen bir kelime işlem programıdır. Bu tür bir programda metinlerle ilgili olarak, araya karakter girme, silme, değiştirme ve arama gibi işlemler tanımlıdır. C dilindeki char tipi bu tür verilerin saklanması için kullanılır.

6.1 Tanımlamalar ve Kullanım

karakter: Bilgisayarda tanımlı herhangi bir karakteri gösterir. Karakter sabitler tek tırnak içinde belirtilir.
                   'A', '0'
     '\65'     :   \ işaretinin ardından belirtilen ASCII kodlu karakter
     C dili karakterleri ayrıca int değer gibi de görür. 'A' karakteri sayısal olarak A harfinin ASCII           tablosundaki karşılığı olan 65 olarakta yorumlanabilir.

dizgi (string): Bir dizi karakterden oluşur. '\0' karakteri dizginin sonunu gösterir.Dizgi sabitler çift tırnak içinde gösterilir.
     "ALİ",   "Bir sayı girin"

      Bu idafede dil \0 karakterini otomatik koyar.


Karakter ile dizgi birbirinden farklı şeylerdir. Dizginin sonunda herzaman \0 karakteri vardır.
'A' ile "A" birbirinin aynısı değildir. 'A' karakterini gösteren 65 değerinde bellekte int olarak salanırken "A" ise bir dizgi olup A ve \0 karakterlerini içerir.


Tanımlama biçimi:

1. Dizi şeklinde tanımlama

char a[7] = {'K','O',,'C','A','E','L','İ'};
char a[8] = "KOCAELİ";           /* Son eleman olrak \0 karakteri eklendiği için eleman sayısını bir fazla belirtmeli */                         2. İşaretçi olarak tanımlama

char *değişken;

char *a;     


Doğrudan Değer Atama

char a[20];
char *b;

a[0] = 'A';    /* dizinin bir elemanına değer verir gibi ve tek tırnak içinde ( karakter sabiti) */
            \0 karakteri ayrıca belirtilmelidir.

Dizi biçiminde tanımlı dizgiye sabir bir dizgi atarma için strcpy işlevi kullanılır.

strcpy(char *hedef, const char *kaynak);   kaynak bilgisini hedef değişkenine kopyalar (string.h)
                                                                Hedef dizgisinde kaynak dizgisini içerecek kadar yer olmalıdır.
strcpy(a, "ALİ");

b = "ALİ";   /* çift tırnak içinde atanacak değer . \0 karakteri otomatik eklenir */

Değerini Yazdırma

printf("%s", a);
puts(a);           sonu \0 ile biten karakter dizisini ekrana yazar ve imleçi alt satıra geçirir        ( stdio.h )

Klavyeden Değer Atama

scanf("%s", a);          /* Boşluk karakterine kadar okuma yapacağı için içerisinde bu karakterin geçmesi olası                                                        girişlerde doğru çalışmaz. Adres operatörü kullanılmıyor */

gets(a) ;           Satır sonu karakterine kadar (ENTER tuşu) basılan karakterleri okur ( stdio.h )


Karakter Dizisinin Herhangi Bir Karakterine Erişme

Dizilerde olduğu gibi erişilmek istenen karakterin indisi bildirilir.

a[2] = 'G';    b[2] = 'G';
a[4] = '\0';   
printf("%c ", b[3]);            /* b'nin 4. elemanını yazar */

Örnek 6.1.1 : Girilen bir metnin uzunluğunu veren programı yazınız.

#include <stdio.h>
main()
{
char *s;
int i;
gets(s);
i = 0;                                                                       for (i=0; s!='\0'; i++)
while (s!='\0')                                                             {}                            /* boş işlem */
    i++;

printf("Uzunluk %d \n", i);
}

strlen ( char *) : Gönderilen değerin uzunluğunu verir. (string.h)

C ++


Sayfayı Yazdır | Pencereyi Kapat 

http://www.samanalevi.com