Zapisywanie stringa
Ostatnio zmodyfikowano 2016-01-07 19:13
go_no Temat założony przez niniejszego użytkownika |
Zapisywanie stringa » 2016-01-03 17:53:16 Mam problem z zapisywaniem tekstu z jednego stringa do innego. Np chce zapisać tekst mieszczacy się miedzy * a $ to nowego stringa. Jak to zrobic? |
|
mateczek |
» 2016-01-03 18:11:22 ręcznie znak po znaku !!! #include <iostream> #include<string>
using namespace std;
int main() { const string napis { "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej" }; string fragment = ""; bool startCopy = false; for( char znak: napis ) { if( znak == '*' ) { startCopy = true; continue; } if( znak == '$' ) { startCopy = false; break; }; if( startCopy ) fragment += znak; } cout << fragment << endl; }
|
|
go_no Temat założony przez niniejszego użytkownika |
» 2016-01-03 18:23:25 Rozumiem, dziekuję za pomoc. A co jeśli nasz tekst byłby "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja nie ma nic$" i rozdzielić to na dwa stringi? |
|
mateczek |
» 2016-01-03 18:33:14 #include <iostream> #include<string> #include<vector>
using namespace std;
int main() { const string napis { "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja ma dwa tygrysy bo byla promocja :P $" }; string fragment = ""; vector < string > strnglist; bool copy { false }; for( char znak: napis ) { if( znak == '*' ) { copy = true; continue; } if( znak == '$' ) { copy = false; strnglist.push_back( fragment ); fragment.clear(); }; if( copy ) fragment += znak; } for( string s: strnglist ) cout << s << endl; } |
|
go_no Temat założony przez niniejszego użytkownika |
» 2016-01-03 18:37:07 Próbowałem skompilowac ten kod i niestety mam bład "[Error] range-based 'for' loops are not allowed in C++98 mode" :/ |
|
mateczek |
» 2016-01-03 18:44:10 pętle "for" są w c++ 11 i chyba inicjalizacja za pomocą {} też !!! jakiego środowiska używasz ?? warto włączyć sobie ten standard (przeważnie opcja w środowisku IDE ). Bo co jak co ale takie "for" to każdemu się spodoba !!!! http://cpp0x.pl/forum/temat/?id=10052 |
|
go_no Temat założony przez niniejszego użytkownika |
» 2016-01-03 20:12:28 dev c++ 5.11
Można jakoś inaczej w takim razie tę pętle for zapisać? |
|
mateczek |
» 2016-01-03 20:21:12 http://www.cplusplus.com/doc/tutorial/introduction/devcpp/standard c++11 włącza się klikiem pewnie że można inaczej pętle zapisać w std98 #include <iostream> #include<string> #include<vector>
using namespace std;
int main() { const string napis = "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja ma dwa tygrysy bo byla promocja :P $"; string fragment = ""; vector < string > strnglist; bool copy { false }; for( int i = 0; i < napis.size(); i++ ) { if( napis[ i ] == '*' ) { copy = true; continue; } if( napis[ i ] == '$' ) { copy = false; strnglist.push_back( fragment ); fragment.clear(); }; if( copy ) fragment += napis[ i ]; } for( vector < string >::iterator i = strnglist.begin(); i != strnglist.end(); i++ ) { cout <<* i << endl; } } |
|
« 1 » 2 3 4 |