Deklaracja zmiennych tekstowych niszczy program
Ostatnio zmodyfikowano 2012-04-14 16:43
czosnek17 Temat założony przez niniejszego użytkownika |
Deklaracja zmiennych tekstowych niszczy program » 2012-04-14 16:25:36 Wczoraj pisałem zadanie domowe. Napisałem usuwanie spacji obok siebie. Program działa dobrze. Piszę dalej i: "Fraza zostala odnaleziona na pozycji 4294967295" Jak to się stało? Kod działający dobrze: #include <iostream> #include <string> void zamien( std::string & sTekst, std::string znacznikht[], std::string znacznikbb[] ) { } std::string konwertuj( std::string & sTekst ) { std::string sWynik; std::string spacje = " "; size_t pozycja = sTekst.find( spacje ); do { std::cout << pozycja << std::endl; std::cout << "Fraza zostala odnaleziona na pozycji " << pozycja << std::endl; pozycja = sTekst.find( spacje ); if( pozycja != std::string::npos ) { sTekst.erase( pozycja, 2 ); std::cout << sTekst << std::endl; } } while( pozycja != std::string::npos ); return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis :)"; std::cout << konwertuj( tekst ) << std::endl; std::cout << tekst << std::endl; return 0; }
Zły: #include <iostream> #include <string> void zamien( std::string & sTekst, std::string znacznikht[], std::string znacznikbb[] ) { } std::string konwertuj( std::string & sTekst ) { std::string sWynik; std::string spacje = " "; std::string znacznikbb[ 2 ]; znacznikbb[ 1 ] = "[b]"; znacznikbb[ 2 ] = "[/b]"; size_t pozycja = sTekst.find( spacje ); do { std::cout << pozycja << std::endl; std::cout << "Fraza zostala odnaleziona na pozycji " << pozycja << std::endl; pozycja = sTekst.find( spacje ); if( pozycja != std::string::npos ) { sTekst.erase( pozycja, 2 ); std::cout << sTekst << std::endl; } } while( pozycja != std::string::npos ); return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis :)"; std::cout << konwertuj( tekst ) << std::endl; std::cout << tekst << std::endl; return 0; }
Tylko utworzyłem zmienne. Nigdzie nawet ich nie użyłem, a program zepsuty * __ * ?? |
|
m4tx |
» 2012-04-14 16:43:22 std::string znacznikbb[ 2 ]; znacznikbb[ 1 ] = "[b]"; znacznikbb[ 2 ] = "[/b]"; Hm... znacznikbb[ 2 ] w ogóle nie istnieje. Poczytaj sobie jeszcze raz o tablicach :P |
|
« 1 » |