Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinde metin ve yazı gibi bilgileri tutmak için kullanılan dizgileri (Strings) tutan değişkenler karşılaştırılırken eşitlik kontrolü yapılması mümkün değildir.
Bunun yerine dizginin tamamının eşit olup olmadığını kontrol etmek ve ancak bütün elemanları aynıysa eşit oldukları hükmüne varmak gerekir.
Bu durum aşağıdaki şekilde açıkça görülmektedir:
Yukarıdaki şekilde hafızada durmakta olan iki ayrı dizgiyi gösteren iki ayrı değişken gösterilmektedir (p ve q değişkenleri).
Bilindiği üzere bir dizgi hafızada dizi (array) olarak durmaktadır ve her elemanı bir karakterdir (character).
Şimdi aşağıdaki kontrol işlemini ele alalım:
if(p==q)
bu kontrolde, p değişkenindeki değer ile q değişkenindeki değer karşılaştırılmıştır. Göstericiler (pointers) bilindiği üzere içlerinde gösterdikleri adresin değerini tutarlar. Yani p değişkeninin içindeki değer ile q değişkeninin içindeki değer, hafızada farklı adresleri gösterdikleri için birbirinden farklıdır. Gösterdikleri yerlerdeki değerlerin aynı olup olmadığını anlamak için bütün elemanlar karşılaştıırlmalıdır.
int esitmi=1;
int i;
for(i = 0;p[i]!=' ';i++){
if(p[i]!=q[i]){
esitmi=0;
break;
}
}
if(esitmi==1&&q[i]==' '){
printf("esitler");
}
else{
printf("esit degiller");
}
Yukarıdaki kod, bir döngü içerisinde dizgi sonu (end of string, ‘