08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

}<br />

main işlevi içinde kullanılan letter_counter isimli dizi, bir sayaç dizisi olarak kullanılıyor.<br />

Dizinin 1. elemanı 'A', 'a' karakterlerinin, dizinin 2. elemanı 'B', 'b' karakterlerinin,<br />

dizinin sonuncu elemanı 'Z', 'z' karakterlerinin sayacı olarak görev yapıyor. Bu yerel<br />

dizi, ilkdeğer verme deyimiyle sıfırlanıyor. İlk for döngü deyimiyle, yazının tüm<br />

karakterleri dolaşılıyor, yazının herhangi bir karakteri eğer bir harf karakteri ise, büyük<br />

harfe dönüştürülerek bu karakterden 'A' değeri çıkarılıyor. Elde edilen değerin<br />

letter_counter dizisine indis yapıldığını ve letter_counter dizisinin bu indisli elemanının<br />

değerinin 1 artırıldığını görüyorsunuz.<br />

İkinci for döngü deyimiyle ise bu kez sayaç dizisinin, değeri 0 olmayan elemanlarının<br />

değerleri ekrana yazdırılıyor.<br />

Aşağıdaki programda ise bir diziye alınan bir yazı içinden rakam karakterleri siliniyor.<br />

Kodu inceleyin:<br />

#include <br />

#include <br />

#define SIZE 500<br />

int main()<br />

{<br />

char str[SIZE];<br />

int k;<br />

int index = 0;<br />

printf("bir yazi girin : ");<br />

gets(str);<br />

printf("yazi = (%s)\n", str);<br />

for (k = 0; str[k] != '\0'; ++k)<br />

if (!isdigit[k])<br />

str[index++] = str[k];<br />

str[index] = '\0';<br />

printf("yazi = (%s)\n", str);<br />

}<br />

return 0;<br />

Yazıdan rakam karakterlerini silmek için yazı, bulunduğu yere yeniden kopyalanıyor.<br />

Ancak kopyalama yapılırken, rakam karakterleri kopyalanmıyor. index isimli değişken,<br />

dizinin neresine yazılacağını gösteriyor. Eğer bir karakter rakam karakteri değilse, bu<br />

karakter dizinin index indisli elemanına atanıyor, sonra index değişkeninin değeri 1<br />

artırılıyor. Ancak yazının tamamını dolaşan for döngüsünden çıktıktan sonra, silme<br />

işleminden sonra oluşan yazının sonuna, sonlandırıcı karakter ekleniyor.<br />

Aşağıdaki programda bir yazının toplam sözcük sayısı bulunuyor:<br />

#include <br />

#define SIZE 200<br />

#define OUTWORD 0<br />

#define INWORD 1<br />

int is_sep(int ch);<br />

int main()<br />

223

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!