<string.h> (Karakter dizisi) kütüphanesi kendi içinde pek çok hazır fonksiyonu barındırır. Bu fonksiyonlardan en çok kullanılanlar;
- -Strlen
- -Strcpy
- -Substr
- -Strcmp
- -Strrev
1) Strlen: Girilen kelimenin uzunluğunu veren fonksiyondur. Örnek vermek gerekirse "char dizi[20]" değişkenimiz olsun ve kullanıcıdan "merhaba" karakterini alalım. Bize döndüreceği uzunluk 7 olacaktır. Bunun sebebi girdiğimiz veri kadar uzunluk döndürür. Karakterimizin max uzunluğunu öğrenmek için sizeof fonksiyonunu kullanabiliriz. Dikkat edilmesi gereken nokta; kelimenin uzunluğunu yazdırırken %d kullanıyoruz. Çünkü bize bir int tipinde veri döndüreceği için %d kullanmamız gerekiyor.
/* 20 karakter uzunluğunda word değişkeni tanımlıyoruz. Kullanıcıdan scanf ile veri alıyoruz. strlen ve sizeof fonksiyonu kullanarak ekrana yazdırıyoruz. */
char word[20];
printf("Kelime Giriniz:");
scanf("%s",&word);
printf("Kelimenin uzunlugu: %d , Degiskenin max uzunlugu: %d",strlen(word),sizeof(word));
2) Strcpy: Bir değişkendeki verileri başka bir değişkene kopyalamamızı sağlayan fonksiyondur. Kullanımı; birinci parametre olarak veriyi kopyalayacağımız yeni değişken, ikinci parametre olarakta içinde veri olan değişken yazılır.
/* 20 karakter uzunluğunda word değişkeni tanımladık. İçine "Merhaba C" atadık. strcpy ile word değişkeninde bulunan karakter dizinimizi copy_word değişkenine kopyaladık. Puts ile copy_word değişkenini ekrana yazdırdık. */
char word[20] = "Merhaba C";
char copy_word[20];
strcpy(copy_word,word);
puts(copy_word);
3) Substr: Substring fonksiyonumuz C' de tanımlı değildir. Bunu kullanmak için iki yöntem bulunmaktadır. Birinci yöntemimiz kendimiz bir substring fonksiyonu oluşturabiliriz. İkinci yöntemimiz ise döngüler ile harfler arasında gezinebiliriz.
/*Word değişkenimize "Deneme" kelimesini atadık. For döngüsü ile değişkenimizin içindeki kelimenin birinci harfinden başlayarak 3. harfine kadar yazdırdık. Ekrandaki çıktımız: "1.Kelimenin ilk 3 harfi: Den" şeklinde olacaktır. Burada ben for döngüsü ile yaptırdım. Eğer programınızda birden fazla yerde substring lazım oluyorsa bir substring fonksiyonu yazmanızı öneririm. Böylelikle kod karmaşıklığından kurtulmuş olacaksınız. */
char word[20]="Deneme";
printf("1.Kelimenin ilk 3 harfi: ");
for(int i=0;i<3;i++)
printf("%c",word[i]);
4) Strcmp: 2 tane değişkeni karşılaştırmamızı sağlayan fonksiyondur. Karşılaştırmayı yaptıktan sonra geriye 1 yada 0 dönderir. Eğer 0 dönüyorsa iki değişken birbirine eşittir. 1 dönüyorsa iki değişken birbirine eşit değildir. Şimdi bir örnek yapalım.
/* 2 tane değişken tanımladık ve içlerine farklı kelimeler atadık. Daha sonra bunları strcmp ile karşılaştırdık. İki kelime birbirine eşit olmadığı için ekrandaki çıktımız: "Iki kelime birine esit degildir." şeklinde olacaktır. */
char word[20]="Deneme";
char word2[20]="Dene";
if(strcmp(word,word2)==0)
printf("Iki kelime birbirine esittir.");
else
printf("Iki kelime birbirine esit degildir.");
5) Strrev: Bir karakter dizinimizi tersine çevirir. Dikkat etmemiz gereken nokta; ters çevirdiğimiz karakter dizinimiz biz tekrar çevirene kadar o şekilde kalır.
/* Word değişkenimizdeki harf dizini strrev fonksiyonu ile tersine çevirdik. */
char word[20]="Merhaba C";
printf("Kelimenin tersi: %s",strrev(word));
6) Strlwr ve Strupr: Kelimeyi büyük veya küçük yapan fonksiyonumuzdur. Strlwr hepsini küçük yapar. Stwupr hepsini büyük yapar.
/* Word değişkenimizdeki harf dizinini ilk önce hepsini küçüğe çevirdik daha sonra hepsini büyüğe çevirdik. */
char word[20]="Merhaba C";
printf("%s",strlwr(word));
printf("%s",strupr(word));
En çok kullanılan string fonksiyonlarının kullanımına değindik. Anlattığımız altı maddelik string fonksiyonlarımızın hepsini kapsayan bir örnek Github' linkinde mevcuttur. Başarılar
Github:
0 Yorum