rozdzial/lekcja 28, zadanie domowe
Ostatnio zmodyfikowano 2022-04-14 23:18
jebackoze Temat założony przez niniejszego użytkownika |
rozdzial/lekcja 28, zadanie domowe » 2022-04-14 22:08:26 hej, cos tam mi sie udalo pokaleczyc i finalnie dziala, ale mam poczucie, ze to nie tak mialo wygladac. szukalem na forum zeby cos porownac, siegnac wzrokiem po podpowiedzi, ale znajdujac chyba temat z rozwiazaniem mam wrazenie, ze owczesnie musiala byc jakas inna tresc zadania (lub cos dodatkowo w lekcji) bo w lekcji nie ma chociazby o resizegdy probuje wszystko wrzucic do jednej petli z warunkiem if (warunek && warunek && warunek) to cos sie rozjezdza. #include <iostream> #include <string>
std::string konwertuj( std::string sTekst ) { std::string sWynik; size_t spacja = sTekst.find( " " ); size_t otwierajacy = sTekst.find( "<b>" ); size_t zamykajacy = sTekst.find( "</b>" ); if( spacja != std::string::npos ) { do { sTekst.erase( spacja, 2 ); sTekst.insert( spacja, " " ); spacja = sTekst.find( " ", spacja ); } while( spacja != std::string::npos ); } if( otwierajacy != std::string::npos ) { do { sTekst.erase( otwierajacy, 3 ); sTekst.insert( otwierajacy, "[b]" ); otwierajacy = sTekst.find( "<b>", otwierajacy ); } while( otwierajacy != std::string::npos ); } if( zamykajacy != std::string::npos ) { do { sTekst.erase( zamykajacy, 4 ); sTekst.insert( zamykajacy, "[b]" ); zamykajacy = sTekst.find( "<b>", zamykajacy ); } while( zamykajacy != std::string::npos ); } std::cout << sTekst; return sWynik; } int main() { std::cout << konwertuj( "<b>to jest </b> testowy napis <b>:)" ) << std::endl; std::cout << konwertuj( " s a m e sp a c j e" ) << std::endl; std::cout << konwertuj( "<<B><//b><i></i>" ) << std::endl; return 0; } nie no, na pewno cos mialo inaczej wygladac skoro pojawia sie: ... std::string sWynik; ... return sWynik; ... |
|
nanoant20 |
» 2022-04-14 22:58:55 dopiero co, był poruszany ten temat rozwiązanie tego zadania link poniżej cpp0x.pl [Rozdział 28] Zadanie domowei jeszcze jedno rozwiązanie naskrobane przeze mnie z użyciem wyrażeń regularnych #include <iostream> #include <cstring> #include <regex>
using namespace std;
std::string konwertuj( std::string sTekst ) { std::string sWynik; const regex pattern1( "(<b>)" ); sTekst = regex_replace( sTekst, pattern1, "[b]" ); const regex pattern2( "(</b>)" ); sTekst = regex_replace( sTekst, pattern2, "[/b]" ); const regex pattern_spaces( "([[:space:]]{1,})" ); sTekst = regex_replace( sTekst, pattern_spaces, " " ); sWynik = sTekst; return sWynik; } int main() { std::cout << konwertuj( "<b>to jest </b> testowy napis <b>:)" ) << std::endl; std::cout << konwertuj( " s a m e sp a c j e" ) << std::endl; std::cout << konwertuj( "<<B><//b><i></i>" ) << std::endl; return 0; }
|
|
jebackoze Temat założony przez niniejszego użytkownika |
» 2022-04-14 23:18:14 ale wtopa, ze nie wpadlem na to zeby sprobowac wyszukac jeszcze rozdział 28, zafiksowalem sie na lekcja bo czesciej na tym znajduje wyniki.
w zasadzie to dla autora kursu moze to byc sygnal, ze uzycie zarowno lekcja jak i rozdzial powoduje, ze kursanci stosuja te 2 slowa zamiennie przez co wyniki wyszukania nie zawsze moga byc kompletne.
|
|
« 1 » |