Odpowiednik w C++ explode() z PHP
Ostatnio zmodyfikowano 2009-10-09 19:55
WunM |
» 2009-10-07 15:46:45 Szybko pisane ale działa (przynajmniej mi).
vector < string > explode( vector < char > & search, char ch ) { string str_find; vector < string > find; vector < char >::iterator i = search.begin(); for(; i < search.end(); i++ ) { if( * i == ch ) { find.push_back( str_find ); str_find = ""; } else str_find += * i; } return find; }
|
|
Thud |
» 2009-10-09 18:40:34 Hmm... No dobra... a stringstream?? A referencje zmiennych (stringów) nie w returnie a paramatrach?? |
|
DejaVu |
» 2009-10-09 18:49:23 A co Twój post wnosi? Masz lepsze rozwiązanie? Zapodaj nim. Krytykować to najłatwiej. |
|
Thud |
» 2009-10-09 20:52:18 Mam pewne rozwiązanie, ale muszę jeszcze nad nim trochę popracować, a jestem zmęczony. |
|
Thud |
» 2009-10-10 11:53:44 Algorytm składa się z dwóch części (czytaj funkcji i procedury) która działa na statycznych tablicach stringów. Jedyny problem pojawia się, gdy przekraczamy zakres tablicy. Można of korz przeprogramować ten skrypt na vectora, bo rozwiązanie WunM'a jest ciekawsze. #include <iostream> #include <cstring> using namespace std; string MainExplode( string Text, char Pause, int & TemporaryNumber ); void Explode( string Text, char Pause, string * Array ); int main() { string Array[ 7 ]; Explode( "ABCD EFGH IJKL 1234 5678 9012 A1L2", ' ', Array ); for( int A = 0; A < sizeof( Array ) / sizeof( string ); A++ ) cout << Array[ A ] << endl; cin.get(); } string MainExplode( string Text, char Pause, int & TemporaryNumber ) { string String; while( Text[ TemporaryNumber ] != Pause && Text[ TemporaryNumber ] != 0 ) String += Text[ TemporaryNumber ], TemporaryNumber++; TemporaryNumber++; return String; } void Explode( string Text, char Pause, string * Array ) { int Temporary = 0; while( Temporary < Text.size() ) { * Array = MainExplode( Text, Pause, Temporary ); Array++; } } post scriptum Sugerowałem się reference PHP, nigdy tej funkcji nie używałem w PHP. //edit: Ehh, no nie, w komencie wkradło się to, co niegdyś nie działało. :P Deleted. |
|
manfred |
» 2009-10-06 21:57:21 Powodzenia w zwróceniu w jednym stringu kilku stringów. |
|
manfred |
» 2009-10-09 19:55:24 A podobno to ja spamuję, nie ty :P. Wnosi (tak z 1000002 razy więcej niż twój) - jak ktoś zrozumie ten post, to sobie rzeczone lepsze rozwiązanie napisze. |
|
1 « 2 » |