PDA

Tam Sürümünü Görmek İçin : Dizi degeri kontrolü


zafercelenk
11/04/2008, 11:11
Merhaba C++ dilinde henüz çok yeniyim küçük bir çalışma yaparken bir yerde takıldım sizlerden yardım istiyorum.


char SonIslem [10][50]; // Son 10 islem bilgisini saklayan dizi

//Son islem bilgisi
void SonIslemGoster()
{
for(int i=0; i<10; i++)
{
if(SonIslem[i] != "NULL")
cout << i << ".Islem: " << SonIslem[i] << endl;
}
}


kısaca anlatayım; Son işlem içerisinde son 10 işlemle ilgili bilgi içeren 10 string değişkenden oluşan bir dizi yada ben öyle yapmak istedim. Bu diziyi programın başlangıcında NULL ile dolduruyorum daha sonra diziye bir iki değer ekledikten sonra if kontrolü ile ekrana yazdırmak istiyorum. Amacım sadece eklenen bilgiler yazılsın ama ekrana 10 degerde yazılıyor ve içi boş olanlar yerine NULL yazıyor. if kontrolünde bir sorun var ama nedir anlamadım. yardımlarınızı bekliyorum.


acehreli
11/04/2008, 20:37
Dizgileri != isleci ile karsilastiramazsin. Onun yerine strcmp kullanman gerekir:

if (strcmp(SonIslem[i], "NULL") == 0)

Boyle durumlarda "NULL" dizgisi yerine cogunlukla NULL degeri kullanilir ama o zaman da malloc ile ayiracagin dinamik diziler kullanmak gerekir tabii.

Ali

zafercelenk
12/04/2008, 12:38
Soruyu yazdıktan sonra biraz daha araştırdım ve dizi tanımını şu şekilde değiştirdim ve tabi kontrol kısmıda şöyle oldu


//char SonIslem [10][50]; // Son 10 islem bilgisini saklayan dizi
string SonIslem [10]; // Son 10 islem bilgisini saklayan dizi

//Son islem bilgisi
void SonIslemGoster()
{
for(int i=0; i<10; i++)
{
if(SonIslem[i] != "NULL")
cout << i << ".Islem: " << SonIslem[i] << endl;
}
}


Yukarıdaki şekilde kod istediğim gibi çalıştı şimdi sormak istediğim hangi yolu kullanmak daha doğru olur. yani diziyi bir string olarak mı tanımlamalıyım ki aslında amacım içinde string bilgi saklamak yada char tipinde mi tanımlamalıyım?

acehreli
13/04/2008, 00:04
C++ kullandigini bastan soylesene. ;) Tabii ki string varken string kullanacaksin! :) Senin kisa ve oz kodun da bunu gosteriyor. Onu malloc'la ayiracagin char dizileriyle yapmak cok daha zor ve hataya acik olurdu.

Ali