Zeichenketten Aufgabe



  • Hallo, vielleicht koennt Ihr mir helfen und zwar habe ich eine Aufgabe zu machen, komme jedoch nicht auf eine Lösung, obwohl sie laut freund total simpel sei!.

    ich muss ein programm entwickeln, bei der ich ein wort oder eine zahl eingeben soll, ist nicht schwer aber jetzt kommts ;). diese zahl oder was wort ist schon deklariert und soll einfach wieder eingegeben, die aufgabe besteht darin, dass wenn der USER sich vertippt ( d.h. einige zahlen oder buchstaben mehr eingibt bzw.
    sich vertippt ) soll das komplett richtige wort oder zahl ausgegeben werden d.h. die zuviel eingetippten zahlen oder buchstaben sollen einfach eleminiert werden.

    habs schon mit schleifen und if stings probiert aber komm einfach auf keine lösung.

    helft mir 🙂



  • Wo bzw wie ist das Wort deklariert?



  • hatte mich ein wenig geiirt,

    ich soll eine telefonnummer eingeben, diese ist mit "char" voher deklariert, ich soll diese dann wieder eingeben, dann soll das programm wenn man sich vertippt die eingabe zwar zulassen trotzdem die richtige telefonnummer ausgeben, d.h die zeichen die zu viel sind einfach eleminieren



  • Du meinst es sollen nur Telefonnummern mit einem bestimmten Format zugelassen werden, z.B.:

    00000-00 00 00
    00000-000000
    00000-000000-00
    00000/00 00 00
    00000/000000
    00000/000000-00
    

    Und alle überflüssigen Zeichen sollen rausgenommen werden? Du kannst somit allerdings nicht die prüfen ob die Nummer Korrekt ist, zusätzliche Zahlen würden ja ohne Probleme angenommen.

    grüße



  • ne so kompliziert ist es nicht, es ist einfach nur eine normale zahl wie z.B "605060" , wenn ich jetzt bei der eingabe ausversehen "6050b460" eingebe soll er trotzdem "605060" ausgeben und das überflüssige "b4" eleminieren.



  • Hi!

    Ja, das is recht einfach. Nachdem die Telefonnummer eingegeben wurde musst du nur alle nicht numerischen Zeichen entfernen:

    #include <iostream>
    #include <algorithm>
    #include <functional>
    
    int main()
    {
    	std::string s( "6050b460" );
    
    	s.erase( std::remove_if( s.begin(), s.end(), std::not1( std::ptr_fun( ::isdigit ) ) ), s.end() );
    
    	std::cout << s.c_str();
    
    	return 0;
    }
    

    grüße



  • polledolski schrieb:

    hatte mich ein wenig geiirt,

    ich soll eine telefonnummer eingeben, diese ist mit "char" voher deklariert, ich soll diese dann wieder eingeben, dann soll das programm wenn man sich vertippt die eingabe zwar zulassen trotzdem die richtige telefonnummer ausgeben, d.h die zeichen die zu viel sind einfach eleminieren

    #include <iostream>
    using namespace std;
    
    int main()
    {
       char *nr = "60054812";
       char eingabe[30];
    
       cin >> eingabe; //  :warning: 
       cout <<nr <<endl;
    
       return 0;
    }
    

    😃 😃


Anmelden zum Antworten