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

#include <br />

#define SIZE 100<br />

int main()<br />

{<br />

char str[SIZE];<br />

int k, temp, len;<br />

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

gets(str);<br />

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

;<br />

}<br />

for (k = 0; k < len / 2; ++k) {<br />

temp = str[k];<br />

str[k] = str[len - 1 - k];<br />

str[len - 1 - k] = temp;<br />

}<br />

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

return 0;<br />

Yukarıdaki kodda kullanılan algoritmayı inceleyin. Birinci for döngüsü ile yazının uzunluğu<br />

bulunuyor. Daha sonra yazının uzunluğunun yarısı kadar dönen bir for döngü deyimi<br />

oluşturuluyor. Döngünün her turunda yazının baştan n. karakteri ile sondan n. karakteri<br />

yer değiştiriliyor. Yazı uzunluğu tek sayı ise, yazının ortasındaki karakter yerinde kalır.<br />

Yazının sonundaki sonlandırıcı karakter<br />

str[len]<br />

olduğuna göre, yazının son karakteri<br />

str[len – 1]<br />

karakteridir, değil mi?<br />

Aşağıdaki programda ise klavyeden girilen bir yazının içinde bulunan tüm İngilizce harfler<br />

sayılıyor ve kaç tane oldukları ekrana yazdırılıyor:<br />

#include <br />

#include <br />

#define SIZE 500<br />

int main()<br />

{<br />

char str[SIZE];<br />

int letter_counter[26] = {0};<br />

int k;<br />

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

gets(str);<br />

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

if (isalpha(str[k]))<br />

letter_counter[toupper(str[k]) - 'A']++;<br />

for (k = 0; k < 26; ++k)<br />

if (letter_counter[k])<br />

printf("%3d tane %c\n", letter_counter[k], 'A' + k);<br />

return 0;<br />

222

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

Saved successfully!

Ooh no, something went wrong!