22 : Karakter Dizisi Boyutu
Bir karakter dizisini başka bir yere kopyalayacağınız zaman ya da karakter dizisi üzerinde üzerinde herhangi bir işlem yapacağınız zaman, bir karakter arama olabilir örneğin, karakter dizisinin boyutunu bilmeniz gerekebilir. Boyutu bulmak ileriki aşamalarda bizim için bir amaç değil sadece küçük bir adım olsa da karakter dizilerinde çalışırken nasıl hareket edeceğimizi görmemiz açısından şuan faydalı olacaktır.
Yaptığımız şey aslında c kütüphanelerinde zaten tanımlı. strlen fonksiyonu kullanılarak bir string'in boyutu bulunabilir. Bu fonksiyonu kullanmak için string.h kütüphanesini eklemeniz gerekiyor.
Bu fonksiyonu kullanmadan bulmak istersek ise bir döngü ile karakter dizisinde gezinmek ve bitiş karakterini aramamız gerekir. Bir döngü oluşturuyoruz ve döngü koşulumuz site_adi[i] != '\0' . site_adi[i] ile i 0' dan başlayarak artıp site_adi dizisinde dolaşmamızı sağlayacak. Bitiş karakteri daha önceki yazıda bahsettiğimiz gibi '\0' karakteridir. "" ile tanımlanan karakter dizisinde otomatik tanımlanır. Eğer diziyi elle dolduruyorsanız sonra karakter olarak eklemeniz gerekir. Literatürde bu karakter null character olarak tanımlanmıştır.
Daha önce if else yapılarında == işlecini görmüştük. Bu işleç eşitlik kontrolü için kullanılıyordu. Burada ise != işleci yani eşit değil mi kontrolü kullanılıyor.
Döngüye bütün olarak bakarsak site_adi[i] ile dizide dolaşarak null karakter ile karşılaşmadığı sürece sayaç değişkenini bir artırıyor ve null karakter ile karşılaştığında döngüyü bitirip sayac değişkenini yazdırıyor.
boyut.c
#include <stdio.h>
#include <string.h> //strlen icin eklendi
int main()
{
char site_adi[50] = "ccppornekleri.blogspot.com";
int i = 0;
int sayac = 0;
for (i = 0; site_adi[i] != '\0'; i++)
{
sayac++;
}
printf("%s \n",site_adi);
printf("boyut = %d \n",sayac);
printf("Boyut = %ld \n", strlen(site_adi));
return 0;
}
Yaptığımız şey aslında c kütüphanelerinde zaten tanımlı. strlen fonksiyonu kullanılarak bir string'in boyutu bulunabilir. Bu fonksiyonu kullanmak için string.h kütüphanesini eklemeniz gerekiyor.
Bu fonksiyonu kullanmadan bulmak istersek ise bir döngü ile karakter dizisinde gezinmek ve bitiş karakterini aramamız gerekir. Bir döngü oluşturuyoruz ve döngü koşulumuz site_adi[i] != '\0' . site_adi[i] ile i 0' dan başlayarak artıp site_adi dizisinde dolaşmamızı sağlayacak. Bitiş karakteri daha önceki yazıda bahsettiğimiz gibi '\0' karakteridir. "" ile tanımlanan karakter dizisinde otomatik tanımlanır. Eğer diziyi elle dolduruyorsanız sonra karakter olarak eklemeniz gerekir. Literatürde bu karakter null character olarak tanımlanmıştır.
Daha önce if else yapılarında == işlecini görmüştük. Bu işleç eşitlik kontrolü için kullanılıyordu. Burada ise != işleci yani eşit değil mi kontrolü kullanılıyor.
Döngüye bütün olarak bakarsak site_adi[i] ile dizide dolaşarak null karakter ile karşılaşmadığı sürece sayaç değişkenini bir artırıyor ve null karakter ile karşılaştığında döngüyü bitirip sayac değişkenini yazdırıyor.
Yorumlar
Yorum Gönder