Rozdział 28 zadanie
Ostatnio zmodyfikowano 2018-10-12 21:49
orientciupaga Temat założony przez niniejszego użytkownika |
Rozdział 28 zadanie » 2018-10-07 22:41:34 Witam, mam problem który nie do końca rozumiem. Otóż napisałem sobie coś takiego do usuwania spacji: #include <iostream> #include <string>
std::string konwertuj( std::string & sTekst ) { std::string sWynik; sWynik.insert( 0, sTekst ); unsigned int a = 0; do { a = sWynik.find( " " ); sWynik.erase( a, 1 ); } while( a != std::string::npos ); return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis <b>:)"; std::cout << konwertuj( tekst ) << std::endl; return 0; }
Jednak wyskakuje mi błąd std::out_of_range. Program zaczyna działać gdy zmienię pętlę na: do { a = sWynik.find( " " ); sWynik.erase( a, 1 ); a = sWynik.find( " " ); } while( a != std::string::npos );
Proszę o poratowanie co popsułem w pierwszej wersji bo nie rozumiem. :) |
|
pekfos |
» 2018-10-07 23:40:38 Usuwasz niezależnie od tego, czy coś znalazłeś. Oba kody są błędne, jeśli w tekście na wstępie nie ma dwóch spacji obok siebie. |
|
wojcioo |
» 2018-10-12 21:49:50 << removed >> |
|
« 1 » |