Leerzeichen aus einen String entfernen!



  • Hallo,

    ich möchte aus einen bestehenden string alle Leerzeichen entfernen hab es folgendermaßen probiert aber irgendwie funktioniert das nicht.

    #include <iostream>
    #include <string>
    
    int main()
    {
    unsigned int i= 0;
    std::string bsp_str = "Das ist ein Test";
    std::string temp_str = "";
      while(i < bsp_str.length())
      {
        if(bsp_str.compare(i , i+1, " ") == 0)
          temp_str += bsp_str[i];
        i++;
      }
    std::cout<<temp_str<<std::endl;
    
    return 0;
    }
    

    Ich hoffe es kann mir jemand weiterhelfen!
    Danke in vorraus!

    mfg hugo



  • #include <string>
    #include <algorithm>
    #include <cctype>
    #include <iostream>
    
    int main(int, char*[]){
        std::string test = "xcvb uzxcuvibxcvb.- sdf.s ,sdfs.fsd fsdf.sdf:;sdfsdf";
    
        std::remove_if(test.begin(), test.end(), static_cast<int(*)(int)>(std::isspace));
    
        std::cout << test << std::endl;
    }
    

  • Mod

    edit: Mist.



  • Deswegen: error: no matching function for call to ‘remove_if(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, <unresolved overloaded function type>)’



  • test.erase(std::remove(test.begin(), test.end(), ' '), test.end());
    

    Das nennt sich das Erase-Remove-Idiom.



  • boost::algorithm::string bringt einen ganzen Haufen nützlicher string Funktionen mit, vielleicht kannst du die ja verwenden.


Anmelden zum Antworten