text auf zeichen aufteilen



  • hey
    ich hab einen text in einenm char array. wie kann ich den jetzt nach \n aufteilen ?

    z.b. der text ist

    char* str = "123\n456\n789\n";
    

    dan soll das aufgeteilte in ein neues array aufgeteil werden das in

    char aufgeteil[3][3]
    

    dann aufgeteilt[1] = "123" und aufgeteil[2] = "456" und aufgeteil[3] = "789" werden.



  • std::vector<std::string> aufgeteilt;
    boost::split(str, "string to split", boost::is_any_of(\n"));
    

    Wenn du allerdings nach einer C-Lösung suchst, ist strtok was für dich.



  • antiwort schrieb:

    std::vector<std::string> aufgeteilt;
    boost::split(str, "string to split", boost::is_any_of(\n"));
    

    Wenn du allerdings nach einer C-Lösung suchst, ist strtok was für dich.

    -) boost-lib installieren.
    -) #include <boost/algorithm/string.hpp> + #include <vector> + #include <string>



  • Mit Standardmitteln:

    #include <deque>
    #include <sstream>
    #include <string>
    
    // ...
    
    std::istringstream tokenizer("123\n456\n789\n");
    std::string token;
    std::deque<std::string> token_list;
    
    // Wenn nicht nach \n, sondern nach einem anderen Zeichen gesplittet werden soll:
    // while(std::getline(tokenizer, token, trenner)) {
    while(std::getline(tokenizer, token)) {
      token_list.push_back(token);
    }
    

Anmelden zum Antworten