PDA

Tam Sürümünü Görmek İçin : C stringlerin eşitliği sorunu.


darkalive
24/04/2008, 16:57
C 'de aşağıdaki gibi 2 dizi ( one dimensional and multi dimensional ) tanımlıyorum.

char x[25]={'a','l','i','\0'};
char *y[3]={"ali","veli","deli"};
daha sonra aşağıdaki şekilde bastırıyorum.

printf ("%s %s \n",x,y[0]);burdan gelen çıktı ali ali şeklinde fakat alt satırda ;


if (x==y[0])
printf ("hebele hubele");

dediğimde 2 çıktıyı birbirine eşit kabul etmiyor ?

bu durumu kotarmanın bir yolu var mıdır acaba?


uszr
24/04/2008, 17:49
Pointer compare ettiginizden dolayi istediginizi gerceklestiremiyorsunuz.
Sorunu cozmek icin string.h kutuphanesindeki fonksiyonlardan yararlanabilirsiniz.

acehreli
24/04/2008, 18:05
uszr "strcmp'i kullan" demek istemis. :)

if (strcmp(x, y[0]) == 0)

Ali

uszr
24/04/2008, 18:11
Hihim aynen oyle ;) Umarim cok belli etmemisimdir :)

darkalive
24/04/2008, 19:55
yardımlarınız için teşekkür ederim ; string.h kütüphanesindeki fonksiyonlara biraz yabancı olduğum için ; bu çözüm aklıma gelmemişti. Kolay gelsin.