Şimdi Ara

C'de takıldıgım bir nokta var yardım edin lütfen(sorun çözüldü)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
214
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • 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...



    < Bu mesaj bu kişi tarafından değiştirildi atilla_ati -- 4 Ekim 2005, 18:08:09 >



  • 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;
    }



    < Bu mesaj bu kişi tarafından değiştirildi seyyah_seyyare -- 3 Ekim 2005, 21:16:30 >
    _____________________________

    Halk içinde muteber bir nesne yok devlet gibi / Olmaya devlet cihanda bir nefes sıhhat gibi
    Kanuni Sultan Süleyman
  • arkadaş çok iyi anlatmış
    sadece bir şey ilave etmek istiyorum

    quote:

    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


    string1 string2 den küçük denilince, kafan karışa bilir, string küçük olurmu diye burdaki küçüklük ve büyüklük alfabedeki dizilişe göre yapılır
    mesela

    "apple" < "orange"
    "book" > "bake"

    biraz dikkat edersen ne demek istediğimi anlarsın
    _____________________________

    Gökte bir öküz varmış, adı Pervin *** Bir öküz de altındaymış yerin.
    Sen asıl iki öküz arasında *** Tepişmesine bak şu eşeklerin!

    (Ömer Hayyam)
  • arkadaşlar çok teşekkür ederim bayağı yararlı oldu newvatoo senin de aydınlatıcı bilgini unutmayacağım çok sağolun
  • 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.
    _____________________________

    Halk içinde muteber bir nesne yok devlet gibi / Olmaya devlet cihanda bir nefes sıhhat gibi
    Kanuni Sultan Süleyman
  • quote:

    Orjinalden alıntı: seyyah_seyyare

    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.

    teşekkür ederim
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.