Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdział 28 zadanie

Ostatnio zmodyfikowano 2018-10-12 21:49
Autor Wiadomość
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:
C/C++
#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:
C/C++
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. :)
P-172570
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.
P-172572
wojcioo
» 2018-10-12 21:49:50
<< removed >>
P-172599
« 1 »
  Strona 1 z 1