Anzahl bestimmter Zeichen im String suchen



  • #include <algorithm>
    using std::count;
    
    // ...
    
    size_t comma_count = count(str.begin(), str.begin(), ',');
    


  • vielen dank, habe noch eine frage:
    Wie kann ich in der schleife der ermittelten ',' die position ermitteln?



  • Habs geschafft 🙂

    if(command[i] == ',')
    							  {
    								  cout << i+1 << endl;
    							  }
    

    Wie kann ich am besten auf die inhalte in der klammer zugreifen:

    (hallo, wie, gehts?, gut, blabla)
    

    Damit ich die einzelnen so verwenden kann:

    string s1 = hallo
    string s2 = wie
    ...
    

    Da ich jetzt die Position der einzelnen Kommas kenne, kann ich aus dem Haupt string diesen in substrings teilen. Brauche Hilfe



  • winexec* schrieb:

    Hallo,

    Schön nach mir gepostet, aber wir wissen: doppelt gemoppelt hält länger.

    MFG winexec*

    Naja, woher soll ich denn wissen, dass du unterdessen schon gepostet hast während ich meinen Post geschrieben habe? -.-



  • kernel64 schrieb:

    Brauche Hilfe

    Super. Was hast du denn unternommen? Was willst du wissen?



  • Also wie würdet ihr das machen, ich hatte vor den ersten string von der klammer bis zum komma einzulesen, dann denn zweiten string zum nächsten komma,... bis zur klammerende ')'

    string str = "(test, hallo, haus, auto)";
    
    //zuweisung der einzelnen strings
    string s1;
    string s2;
    string s3;
    
    //finde die letzte klammer
    int last = str.rfind(')');
    
    int count = 0;
    for(int i = 0; i < str.size(); i++)
    {
    if(str[i] == ',')
    							  {
    								  cout << i+1 << endl;
    							  }
    						  }
    

    Mein Problem ist wie soll ich die strings s1, s2, s3 mit den werten aus der klammer zuweisen, ich weiß das es mit subrtr() funktioniert, habe nur ein Problem mit der Position der Kommas!



  • Was für ein Problem hast du denn damit?



  • Also wie bekomme nach der Schleife in s1="test", s2="hallo", s3="haus" zugewiesen?? Zeig mir bitte ein Beispiel



  • Hallo,

    substr sollte helfen.

    Naja, woher soll ich denn wissen, dass du unterdessen schon gepostet hast während ich meinen Post geschrieben habe? -.-

    Ist auch egal. Darüber zu diskutieren wäre kindisch. Ich-habe-zuerst- gepostet-Art. Ist ja schließlich kein Wettbewerb.

    MFG winexec*



  • Du kannst per find() oder find_first_of() die Position deiner Trennzeichen ermitteln (oder in deiner aktuellen Schleife merken) und dann mit substr() die einzelnen Teilstrings raussuchen.

    (übrigens würde ich statt dreier fester Strings lieber einen Container (vector o.ä.) verwenden, da kannst du beliebig viele Textfetzen reinpacken)


Anmelden zum Antworten