Rashmistrz Temat założony przez niniejszego użytkownika |
Lekcja 28 Modyfikowanie tekstu. (zadanie) » 2014-09-21 19:34:29 Według mnie mój program powinien usunąć spacje następujące po sobie, jednak się tak nie dzieje, więc zwracam się do was o pomoc w znalezieniu mojego błędu(-ów), którego(-ych) ja nie mogę znaleźć... "replacator.cpp": #include <iostream> #include <string>
std::string konwertuj( std::string & sTekst ) { std::string sWynik = sTekst; int ostatniaPozycja; int znalezionaPozycja = sWynik.find( ' ', 0 ); while( znalezionaPozycja != std::string::npos ) { std::cout << znalezionaPozycja << ' '; ostatniaPozycja = znalezionaPozycja; znalezionaPozycja = sWynik.find( ' ', ostatniaPozycja + 1 ); if( ostatniaPozycja == znalezionaPozycja - 1 ) sWynik.erase( ostatniaPozycja, 1 ); } return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis :)"; std::cout << konwertuj( tekst ) << std::endl; return 0; }
|
|
pekfos |
» 2014-09-21 19:46:48 Nie zmniejszasz znalezionaPozycja po usunięciu znaku. |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-21 20:05:04 Tak, zgadza się... Teraz zajmę się drugim podpunktem zadania :F Mój kod po edycji wygląda tak: #include <iostream> #include <string>
std::string konwertuj( std::string & sTekst ) { std::string sWynik = sTekst; int ostatniaPozycja; int znalezionaPozycja = sWynik.find( ' ', 0 ); while( znalezionaPozycja != std::string::npos ) { std::cout << znalezionaPozycja << ' '; ostatniaPozycja = znalezionaPozycja; znalezionaPozycja = sWynik.find( ' ', ostatniaPozycja + 1 ); if( ostatniaPozycja == znalezionaPozycja - 1 ) { sWynik.erase( ostatniaPozycja, 1 ); znalezionaPozycja--; }; }; std::cout << std::endl; return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis :)"; std::cout << konwertuj( tekst ) << std::endl; return 0; }
|
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-21 20:29:30 Teraz mam inny problem, chyba jakoś źle użyłem metody. Tak myślę, bo log kompilacji odsyła mnie do innych plików. :F "replacator.cpp" #include <iostream> #include <string>
std::string konwertuj( std::string & sTekst ) { std::string sWynik = sTekst; int ostatniaPozycja; int znalezionaPozycja = sWynik.find( ' ', 0 ); while( znalezionaPozycja != std::string::npos ) { std::cout << znalezionaPozycja << ' '; ostatniaPozycja = znalezionaPozycja; znalezionaPozycja = sWynik.find( ' ', ostatniaPozycja + 1 ); if( ostatniaPozycja == znalezionaPozycja - 1 ) { sWynik.erase( ostatniaPozycja, 1 ); znalezionaPozycja--; }; }; std::cout << std::endl; znalezionaPozycja = sWynik.find( '<', 0 ); while( znalezionaPozycja != std::string::npos ) { sWynik.erase( znalezionaPozycja, 1 ); sWynik.insert( znalezionaPozycja, '[' ); znalezionaPozycja = sWynik.find( '<', znalezionaPozycja ); }; znalezionaPozycja = sWynik.find( '>', 0 ); while( znalezionaPozycja != std::string::npos ) { sWynik.erase( znalezionaPozycja, 1 ); sWynik.insert( znalezionaPozycja, ']' ); znalezionaPozycja = sWynik.find( '>', znalezionaPozycja ); }; return sWynik; } int main() { std::string tekst = "<b>to jest </b> testowy napis :)"; std::cout << konwertuj( tekst ) << std::endl; return 0; }
|
|
pekfos |
» 2014-09-21 20:36:21 Tak myślę, bo log kompilacji odsyła mnie do innych plików. :F |
Błędy się podaje, a nie mówi, że są. |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-21 20:37:35 Nie potrafię całego loga(-u?) kompilacji skopiować. >_<E:\CACHE\007\000\TEST\replacator.cpp||In function 'std::string konwertuj(std::string&)':| E:\CACHE\007\000\TEST\replacator.cpp|29|error: invalid conversion from 'char' to 'const char*' [-fpermissive]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|1293|error: initializing argument 2 of 'std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::insert(std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = unsigned int]' [-fpermissive]| E:\CACHE\007\000\TEST\replacator.cpp|36|error: invalid conversion from 'char' to 'const char*' [-fpermissive]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|1293|error: initializing argument 2 of 'std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::insert(std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = unsigned int]' [-fpermissive]| ||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
|
//dla mnie to chaos :F |
|
pekfos |
» 2014-09-21 20:41:35 sWynik.insert( znalezionaPozycja, 1, ']' );
|
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-21 20:44:56 Zadanie wykonane. :) Dziękuję za pomoc...
|
|
« 1 » 2 |