12.3 Katarlar Üzerinde İşlem Yapan Standart G/Ç Fonksiyonları

12.3   Katarlar Üzerinde İşlem Yapan Standart G/Ç Fonksiyonları

printf() ve scanf() fonksiyonları diğer tiplerde olduğu gibi formatlı okuma/yazma amaçlı kullanılır. Katar formatı %s dir. Örneğin:

 

satırları ile klavyeden okunan katarın ilk 20 karakteri ekrana yazdırlabilir. Burada printf() fonksiyonu:

şeklinde de kullanılabir. Bu durumda, katar ekrana yazdırılır fakat imlec (cursor) bir alt satıra geçmez.

gets() fonksiyonu klavyeden karakter dizisi almakta kullanılan bir C fonksiyonudur. Bu fonksiyon, klavyeden girilen karakterleri diziye yerleştirdikten sonra dizinin sonuna otomatik olarak NULL ('\0') karakterini ekler.

 NOT

gets() fonksiyonunu kullanmak biraz tehlikeli olabilir.
Çünkü, gets() ile okuma yapılırken katarın büyüklüğünü dikkate alınmaz. Örneğin:

şeklindeki okuma işleminde s en fazla 10 karakter saklayabilirken, gets() ile 100 karakter girilirse, derleyici bütün karakterleri saklamaya çalışır. Bu durumda, program sağlıklı çalışmaz ve hata verir. Bu yüzden bazı derleyiciler, gets() kullanıldığında aşağıdaki gibi bir uyarı verir.

Sonuç olarak, scanf() fonksiyonunu kullanmanız tavsiye edilir.

puts() fonksiyonu bir karakter dizisini ekrana yazdırmak için kullanılır. Bu fonksiyon diziyi ekrana yazdırdıktan sonra imleci (cursor) bir sonraki satıra geçirir.

puts(str) ile printf("%s\n",str) işlevsel olarak birbirine eşdeğerdir.

Buraya kadar anlatılanlar Program 12.1-3 de özetlenmiştir.

Program 12.1: Bir katarın farklı yöntemlerle ekrana yazdırılması

ÇIKTI

 

Aşağıdaki program kalvyeden girilen bir katar içindeki 'm' karakterlerinin sayısını blup ekrana yazar. İnceleyiniz.

Program 12.2: Bir katar içinde ‘m’ karakterinin sayısını öğrenme

ÇIKTI

 

13. satırdaki döngüde, str[i]!='\0', koşulu ile sonlandırıcı karaktere gelinip gelinmedği sorgulanmaktadır. 14. satırda katar içindeki 'm' karakterine rastlanırsa sayac değeri bir artmaktadır. Katar sonuna kadar bütün 'm' karakterlerinin toplamı hesaplanıp ekrana yazdırılmıştır.

Program 12.2’deki döngü şöyle de yazılabilirdi:

Buradaki işlemle str[i]NULL karakterinden farklı olduğu sürece döngü devam ettirilmiştir.

Aşağıdaki program elemanlı katar olan bir karakter dizisini ekrana yazar.

Program 12.3: Bir katarı yazdırma

ÇIKTI

 

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.