Şimdi Ara

C de Scanf ile karakter okutma hakkında yardım lutfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
807
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • İyi günler arkadaşlar amacım klavyeden girilen harf notunun değerini alıp işlem yaptırmak örneğin; kullanıcı harf notunu "aa" girsin ben programda aa yı 4 e eşitleyip diğer notlarla toplayıp işlem yaptırcam ancak programın if yapısında sorun çıktı "eğer girilen değer=aa ise" diye bi karakter karşılaştırması yapıcam nası yapcagım konusunda yardımcı olursanız sevinirim.
    böyle bi kod yazdım fakat hep olmadı diyor aa yı tek tırnak içine aldığım zaman sadece ilk karakteri okuyo yani aa yazsanda a yı alıyo ab yazsanda a yı alıyo bana 2 karakter alıp karşılaştırcak bir kod lazım şimdden teşekkürler.

    char p;
    scanf(" %2",&p);
    if(p=="aa")
    printf("oldu");
    else
    printf("olmadi");n



  • şimdi öncelikle scanf ile %2 şeklinde bir kullanım olmaz. % işaretinden sonra d,f,x,h gibi harflerden biri gelir ve hepsinin anlamı farklıdır. karakter okutmak için %c olarak kullanırsın.

    ikinci olarak char veri tipi sadece 1 karakter depolar. "aa" gibi bir veri farkedeceğin üzere 2 karakterdir. Birden fazla karakterlerin yanyana gelerek oluşturduğu veri tipine string diyoruz. C de stringler konusuna göz atabilirsin. Ayrıca p=="aa" şeklinde bir karşılaştırma c ile mümkün değil stringler üzerinde ne yazıkki.
  • Hocam anlattıklarının hepsini biliyorum fakat çözüm bulamadıgım için bu kodun üzerinden yanlışlıkları düzelterek gitmek istedim demek istediğim scanf ile girilen 2 karakteri if yapısı kendim belirlediğm bir değere eşitlemek charda tek karakter oluo bu kodu 2 tane char kullanarak hallettim ama benim kafamın takldıgı yer birden fazla karakteri(stringi) C de nasıl kullancam ve if içinde nasl işlem yaptırcam yani girilen karakter sayısı 20 olsaydı benim 20 tane char tanımlamam gerekirdi buda işimi iyice zorlaştırırdı bunu kolaylastırcak bi kod arıyorum.
  • strcmp ile karşılaştır. 0 dönerse stringler eşit demektir.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: elektro_gadget

    strcmp ile karşılaştır. 0 dönerse stringler eşit demektir.

    Bunu nasıl yazacağım yardımcı olursan sevinirim
  • char harf_not[5]; // 4 karakterlik alan (+1 null)
    scanf("%s", harf_not); // stringler için %s

    if( !(strcmp(harf_not, "aa") ) printf("oldu");
    else printf("olmadı");
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.