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

aynı işi yapar. Ancak printf işlevi, dizi içinde tutulan yazıyı ekrana yazdırdıktan sonra<br />

imleci alt satıra taşımaz.<br />

puts(name);<br />

deyimi yerine aşağıdaki kod parçası da yazılabilirdi:<br />

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

putchar(name[i]);<br />

putchar('\n');<br />

puts işlevi ve %s format karakteriyle kullanıldığında printf işlevi, sonlandırıcı karakter<br />

görene kadar bütün karakterleri ekrana yazar. Bu durumda, yazının sonundaki<br />

sonlandırıcı karakter herhangi bir şekilde ezilirse her iki işlev de ilk sonlandırıcı karakteri<br />

görene kadar yazma işlemini sürdürür. Aşağıdaki programı inceleyin:<br />

#include <br />

int main()<br />

{<br />

char city[] = "Ankara";<br />

city[6] = '!';<br />

puts(city);<br />

}<br />

return 0;<br />

city[6] = '!';<br />

atamasıyla Ankara yazısının sonundaki sonlandırıcı karakter ezilerek üzerine ! karakteri<br />

yazılıyor. Daha sonra çağrılan puts işlevi ekrana<br />

Ankara!<br />

yazısını yazdıktan sonra ilk sonlandırıcı karakteri görene kadar ekrana yazmayı sürdürür.<br />

Göstericiler konusunda bu durumun bir gösterici hatası oluşturduğunu göreceksiniz. puts<br />

ve printf işlevleri, karakter dizilerini yazarken yalnızca sonlandırıcı karakteri dikkate alır.<br />

Bu işlevler karakter dizilerinin uzunluklarıyla ilgilenmez.<br />

Karakter Dizileriyle İlgili Bazı Küçük Uygulamalar<br />

Aşağıdaki programda bir karakter dizisi içinde tutulan yazının uzunluğu bulunuyor:<br />

#include <br />

#define SIZE 100<br />

int main()<br />

{<br />

char str[SIZE];<br />

int k;<br />

int len = 0;<br />

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

gets(str);<br />

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

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

len++;<br />

printf("(%s) yazisinin uzunlugu = %d\n", str, len);<br />

220

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

Saved successfully!

Ooh no, something went wrong!