Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
928
Tıklama
0
Öne Çıkarma
C de Scanf ile karakter okutma hakkında yardım lutfen
C
15 yıl (20 mesaj)
Onbaşı
Konu Sahibi

İ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



D
15 yıl (1185 mesaj)
Yüzbaşı

ş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.


Bu mesaja 1 cevap geldi.
C
15 yıl (20 mesaj)
Onbaşı
Konu Sahibi

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.



G
15 yıl (8718 mesaj)
Yarbay

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



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
C
15 yıl (20 mesaj)
Onbaşı
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
G
15 yıl (8718 mesaj)
Yarbay

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ı");



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.