
-
Karakter İşleme
Sosyal Ağ Paylaşımı :

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)
Konuya Ait Yorumlar
Şu an yorum yazılmamış!..
İlginizi Çekebilecek Konular |
Başlık |
Ekleyen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yorum Gönder