Yazılarla İlgili İşlem Yapan Fonksiyonlar
Bir grup standart C fonksiyonu vardır ki, bu fonksiyonlar bir yazının başlangıç adresini parametre olarak alarak yazı ile ilgili birtakım faydalı işlemler yaparlar. Bu fonksiyonlara string fonksiyonları denir. String fonksiyonlarının prototipleri string.h dosyası içindedir. Bu fonksiyonlardan bazılarını inceleyelim :
strlen Fonksiyonu
Bu fonksiyon bir yazının karakter uzunluğunu (kaç karakterden oluştuğu bilgisini) elde etmek için kullanılır.
Örnek
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
printf("bir yazı giriniz : ");
gets(s);
printf("%dn", strlen(s));
return 0;
}
strchr fonksiyonu
Fonksiyonun ismi olan strchr "string character" sözcüklerinin kısaltılarak birleştirilmesinden elde edilmiştir. strchr fonksiyonu bir karakter dizisi içinde belirli bir karakteri aramak için kullanılan standart bir C fonksiyonudur. Prototipi string.h dosyası içinde bulunmaktadır.
strcpy fonksiyonu
Fonksiyonun ismi olan strcpy, string ve copy sözcüklerinin kısaltılarak birleştirilmesinden elde edilmiştir.Fonksiyon ikinci parametresinde tutulan adresten başlayarak, NULL karakter görene kadar, (NULL karakter dahil olmak üzere) tüm karakterleri sırasıyla birinci parametresinde tutulan adresten başlayarak sırayla yazar. Fonksiyonun prototipi string.h dosyası içindedir.
Örnek
#include <stdio.h>
#include <string.h>
int main()
{
char dest[100] = "C öğreniyoruz!";
char source[100];
printf("kopyalanacak yazıyı giriniz : ");
gets(source);
printf("kopyalama yapılmadan önce kopyalamanın yapacağı yerde bulunan yazı : n");
puts(dest);
strcpy(dest, source);
printf("kopyalamadan sonra kopyalamanın yapıldığı yerde bulunan yazı : n");
puts(dest);
return 0;
}
strcat fonksiyonu
Fonksiyonun ismi string ve concatanate sözcüklerinin kısaltılarak birleştirilmesiyle elde edilmiştir.
strcat fonksiyonu bir karakter dizisinin sonuna başka bir karakter dizisinin kopyalanması amacıyla kullanılmaktadır. Fonksiyonun prototipi string.h dosyası içindedir.
Örnek
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
printf("sonuna ekleme yapılacak yazıyı giriniz : ");
gets(s1);
printf("girdiğiniz yazının uzunluğu = %dn", strlen(s1));
printf("eklemek istediğiniz yazıyı giriniz : ");
gets(s2);
printf("eklenecek yazının uzunluğu = %dn", strlen(s2));
strcat(s1, s2);
printf("ekleme yapıldıktan sonra 1. yazı : ");
puts(s1);
printf("ekleme yapıldıktan sonra yazının uzunluğu : %dn", strlen(s1));
return 0;
}
strset fonksiyonu
Standart olmayan bu fonksiyon derleyicilerin çoğunda bulunur. Fonksiyonun ismi string ve set sözcüklerinin kısaltılarak birleştirilmesinden elde edilmiştir. Bir karakter dizisinin belirli bir karakterle doldurulması amacıyla kullanılmaktadır. Prototipi string.h dosyası içinde bulunmaktadır.
Örnek
#include <stdio.h>
#include <conio.h>
int main()
{
char s[100];
int ch;
printf("bir yazı giriniz :");
gets(s);
printf("yazıyı hangi karakterle doldurmak istiyorsunuz : ");
ch = getchar();
printf("nyazının %c karakteriyle doldurulduktan sonraki hali : %sn", ch,
strset(s, ch));
return 0;
}
strcmp fonksiyonu
Standart bir C fonksiyonudur. Fonksiyonun ismi string ve compare sözcüklerinin kısaltılarak birleştirilmesinden elde edilmiştir. Fonksiyon iki karakter dizisini karşılaştırmakta kullanılır. Karşılaştırma, iki karakter dizisi içindeki yazının kullanılan karakter seti tablosu gözönünde bulundurularak, öncelilk ya da eşitlik durumunun sorgulanmasıdır. Örneğin :
Adana yazısı Ankara yazısından daha küçüktür. Çünkü eşitliği bozan 'n' karakteri ASCII tablosunda 'd' karakterinden sonra gelmektedir.
ankara yazısı ANKARA yazısından daha büyüktür. Çünkü küçük harfler ASCII tablosunda büyük harflerden sonra gelmektedir.
Fonksiyon 1. parametre değişkeninde başlangıç adresi tutulan yazı ile, ikinci parametre değişkeninde başlangıç adresi tutulan yazıları karşılaştırır.
fonksiyonun geri dönüş değeri
1. yazı 2.yazıdan daha büyükse pozitif bir değere
1. yazı 2. yazıdan daha küçükse negatif bir değere
1.yazı ve 2. yazı birbirine eşit ise 0 değerine geri döner.
Örnek
#include <stdio.h>
#include <string.h>
int main()
{
char s[20];
char password[ ] = "Mavi ay";
printf("parolayı giriniz : ");
gets(s);
if (!strcmp(s, password))
printf("Parola doğru!..n");
else
printf("Parola yanlış!..n");
return 0;
}
strrev fonksiyonu
Standart olmayan bu fonksiyon derleyiclerin çoğunda bulunur. Fonksiyonun ismi ingilizce string ve reverse söcüklerinin kısaltılarak birleştirilmesinden elde edilmiştir. Karakter dizilerini ters çevirmek amacıyla kullanılır.
Örnek
#include <stdio.h>
#include <string.h>
main()
{
char s[100];
printf("ters çevirilecek yazıyı giriniz : ");
gets(s);
printf("yazınızın ters çevrilmiş hali : n");
puts(setrev(s));
return 0;
}
strupr ve strlwr fonksiyonları
Standart C fonksiyonları olmamalarına karşın hemen hemen her derleyicide bulunurlar.
İsimleri string upper ve string lower kelimelerinin kısaltılarak birleştirilmesinden elde edilmiştir. Bu fonksiyonların bir yazının tüm karakterleri için büyük harf küçük harf dönüştürmesi yaparlar. Fonksiyonların geri dönüş değerleri parametresi ile verilen adresin aynısıdır. Geri dönüş değerlerine genellikle ihtiyaç duyulmaz. Her iki fonksiyon da ingiliz alfabesinde olan harfler için dönüşüm yaparlar. Türkçe karakterler için de dönüşüm yapacak bir fonksiyon kullanmak istiyorsak kendimiz yazmalıyız.
Örnek
#include <stdio.h>
#include <string.h>
int main()
{
char s[ ] = "C programcısı olmak için çok çalışmak gerekir!";
strupr(s);
puts(s);
return 0;
}
|