kann jemand ein Meinung geben bitte



  • habe einen program zu schreiben die die zeichen und numern unterscheden soll
    ich habe denn prog. geschrienen aber ohne erfolg.

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        char a;
        cout << " Geben sie bitte eine Zeichen ein: " << endl;
        cin >> a;
        if (a == 'a','b','c')// soll die ganze alphabet erkennt werden
        {
        cout << "Alphazeichen:" << endl;
         }
    
        else {
             if(a == '0','1','2','3','4','5','6','7','8','9'){/* auch wenn ich zieffer eingebe kommt raus alphazeichen */
        cout << " zifernzeichen :" << endl;}
        else {
             cout << " sonstigezeichen"<< endl;
             }
             }
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    wäre dankbar für jede antwort
    mfg toni



  • die abfrage a== 'a','b'... funktioniert soweit ich weiß nicht, du müsstest für jeden Buchstaben einzeln mit a vergleichen besser ist
    mit den werten des ASCII Zeichensatz zu vergleichen.

    auf alphazeichen:

    if(a>64&&a<90||a>96&&a<122)
    {
    }
    

    Hoffe es hilft

    LG



  • Besser wären die Funktionen std::isalpha und std::isdigit aus <cctype>.



  • Sascha_Thiel schrieb:

    die abfrage a== 'a','b'... funktioniert soweit ich weiß nicht,

    genau.
    das sollte heißen if(a=='a' or a=='b' or a=='c'...

    Sascha_Thiel schrieb:

    du müsstest für jeden Buchstaben einzeln mit a vergleichen besser ist
    mit den werten des ASCII Zeichensatz zu vergleichen.
    auf alphazeichen:

    if(a>64&&a<90||a>96&&a<122)
    {
    }
    

    guter vorschlag. noch einen hauch netter zu lesen wäre es als

    if((a>='A' and a<='Z') or (a>='a' and a<='z'))
    {
    }
    

Anmelden zum Antworten