Von [12345abc678] nur die Zahle -> [12345678] ???



  • Dino Crisis schrieb:

    Das Problem ist nur, dass die Zahlen bis zum ersten Buchstaben/Zeichen eingelesen werden.

    Deswegen musst du statt eines ints einen string einlesen:

    #include <iostream>
    #include <string>
    #include <cctype>
    #include <algorithm>
    #include <functional>
    
    using namespace std;
    
    int main()
    {
      string Zahl;
      cin >> Zahl;
      Zahl.erase(remove_if(Zahl.begin(), Zahl.end(), not1(ptr_fun(isdigit))),
                 Zahl.end());
      cout << Zahl;
    }
    


  • Jaa... es klapt.. danke dir finix...

    Ich weiß nur nicht warum es klapt... 😡 😃

    Kann mir eventuel jemand diese Zeile Erklären?

    cin >> Zahl;
    //--------------------------------------------------------------------------------------
      Zahl.erase(remove_if(Zahl.begin(), Zahl.end(), not1(ptr_fun(isdigit))), Zahl.end());
    //--------------------------------------------------------------------------------------
    

    Z. B. Was bedeutet das: 'isdigit' ?

    Kann mir eventuel jemand einen Link zur behandlung "dieser/solcher" Funltionen geben?

    Herzlichen Danke....
    Dino



  • das ist ungefähr das gleiche wie GPC gepostet hat..



  • Erkäre mir lieber deine Wunderzeile... :p



  • Dino Crisis schrieb:

    Kann mir eventuel jemand diese Zeile Erklären?

    cin >> Zahl;
    //--------------------------------------------------------------------------------------
      Zahl.erase(remove_if(Zahl.begin(), Zahl.end(), not1(ptr_fun(isdigit))), Zahl.end());
    //--------------------------------------------------------------------------------------
    

    Jedes zeichen welches keine (not1) Ziffer (isdigit) ist wird ans Ende des Strings verschoben (remove_if), danach dieser ganze Bereich von Nichtziffern gelöscht (erase).

    Dino Crisis schrieb:

    Kann mir eventuel jemand einen Link zur behandlung "dieser/solcher" Funltionen geben?

    www.sgi.com/tech/stl/
    www.cppreference.com



  • Habe gearde noch ein mehr oder weniger Problem. Es gibt doch einen "get.lenth" operator (oder so ähnlich) womit ich die Länge von z. B. dem String 'Zahl' herausbekomme.

    Wie sätz ich den ein. (Falls es den gibt)

    Kurz:
    Wie kann ich die länge vom String 'Zahl' Anzeigen lassen.



  • std::string foo = "blub";
    std::cout << foo.length();   // gibt 4 aus
    


  • OK, Danke...



  • geht das auch nicht ganz einfach mit

    atoi()
    

    ?? 😕



  • ManPage von <a href= schrieb:

    man: atoi">atoi does no overflow checking, handles unsigned numbers poorly, and handles strings containing trailing extra characters (like ``123abc'') poorly.

    Ist also nicht so gut geeignet.


Anmelden zum Antworten