DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
merhaba arkadaşlar problemi özetliyorum; c de herhangiibir karakter dizisi tanımladım ama ben bu karakter dizisinde özel bir kelime girildiginde baska bir fonksiyon çalıştırmak istiyorum mesela printf("tebrikler..."); gibi.tanımladığım karakter dizisine eleman girme işlemini gets(a); ile yaptım(dizinin adı a dizisi) şimdi ben bunu if döngüsü ile yaptığım vakit algoritmayı şöyle geliştirdim.Örneğin attila girildiğinde if döngüsü çalışacak .... gets(a); if(gets(a)=="attila"){ ..... } ama çalışmadı bu sefer de girilen her karakteri tek tek sorgulayım dedim şöyle bir algoritma yazdım if(a[0]=='a'&&a[1]=='t'&&a[2]=='t'...) ama bu da sonuç vermedi. Burada tıkandım yardımcı olabilecek arkadaşların yardımını bekliyorum...
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
C de iki string'i karşılaştırırken "==" operatörünü kullanamazsınız. Bunun yerine strcmp() fonksiyonunu kullanmanız gerekir.
strcmp(string1, string2); Bu fonksiyon 3 değer döndürür. 0 ise iki string birbirine eşit 0 dan küçükse string1 string2 den küçük 0 dan büyükse string1 string2 den büyük
strcmp() fonksiyonunu kullanmak için "string.h" include edin
Örnek program
#include <stdio.h> #include <string.h>
int main () { char szKey[] = "apple"; char szInput[80]; do { printf ("Which is my favourite fruit? "); gets (szInput); } while (strcmp (szKey,szInput) != 0); printf ("Correct answer!\n"); return 0; }
arkadaşlar bir sorum daha olacak ben tanımlamış olduğumuz herhangibir dizdeki en büyük elemanı bulan basit bir program yazdım.daha önce int a[10]; olarak tanımladığımız bir diziye yine gets(a); ile değerler girdiğimde algoritmanın en büyük sayıyı çok saçma bir değer(6613) gösterdiğini gördüm bunun nedeni sanırım yerel değişkenlere ilk değer verme işleminde biliyorsunuz bellekte o anda hangi sayı varsa rastgele olarak o sayı atandığı için böyle bir sorun oldu dedim ama ben int a[10]={1,2,3,4,5,6,7,8,9,10}; gibi bir tanımlama yapınca program düzgün olarak çalışıyor? sorunu özetleyecek olursam;gets(a); ile değer girdiğimde dizinin en büyük elemanı olarak çok saçma bir değer görüyorum(halbuki girdiğim en büyük değer 20) ama eğer int a[10]={1,2,3,4,5,6,7,8,9,10}; şeklinde bir tanımlama yaparsam program sorunsuz çalışıyor sizce bu fark neden olabilir? yardımlarınız için şimdiden teşekkür ederim
gets() fonksiyonu char tipinde ekrandan bilgi alır. Normal diziyi int olarak tanımlamışsınız. Bence gets() fonksiyonu yerine eğer int değer alacaksanız scanf() fonksiyonunu kullanınız. Eğer string olarak okuyacaksanız gets() fonksiyonunu kullanın.
gets() fonksiyonu char tipinde ekrandan bilgi alır. Normal diziyi int olarak tanımlamışsınız. Bence gets() fonksiyonu yerine eğer int değer alacaksanız scanf() fonksiyonunu kullanınız. Eğer string olarak okuyacaksanız gets() fonksiyonunu kullanın.
c de herhangiibir karakter dizisi tanımladım ama ben bu karakter dizisinde özel bir kelime girildiginde baska bir fonksiyon çalıştırmak istiyorum mesela printf("tebrikler..."); gibi.tanımladığım karakter dizisine eleman girme işlemini gets(a); ile yaptım(dizinin adı a dizisi) şimdi ben bunu if döngüsü ile yaptığım vakit algoritmayı şöyle geliştirdim.Örneğin attila girildiğinde if döngüsü çalışacak
....
gets(a);
if(gets(a)=="attila"){
.....
}
ama çalışmadı bu sefer de girilen her karakteri tek tek sorgulayım dedim şöyle bir algoritma yazdım
if(a[0]=='a'&&a[1]=='t'&&a[2]=='t'...)
ama bu da sonuç vermedi.
Burada tıkandım yardımcı olabilecek arkadaşların yardımını bekliyorum...
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi atilla_ati -- 4 Ekim 2005, 18:08:09 >