diego997 Temat założony przez niniejszego użytkownika |
String do tablicy » 2011-04-15 16:50:20 Witam mam pytanie czy da się zrobić coś takiego np.
string a = "Basia,Tadek,Marian"; string tabl[10];
I teraz żeby słowo Basia trafiło do np pierwszego elementu tablicy tabl[0] ??
Z góry dzięki
P.S C++ |
|
Mrowqa |
» 2011-04-15 17:00:48 Podpowiedz: Zrób poszukiwania znaku ',' w stringu z imionami ( funkcja składowa -> find ). Możesz zapisać Sobie położenie przecinka w zmniennej typu całkowitego ( polecam string::size_type - zwykła zmienna całkowita UNSIGNED !! ). Teraz można przekopiować zawartość od początku do przecinka ( a do pomocniczego stringu - zawartość bez pierwszego imiona ). Teraz powtarzasz te operacje w kółko ;) Wystarczy pomyśleć :D Radzę poczytać co nieco o stringach :D
Pozdrawiam, Mrowqa |
|
pekfos |
» 2011-04-15 17:27:13 lub find_(first/last)_(not_)of. size_t to to samo a krócej sie zapisuje :P
jakby ktoś nie zrozumiał tego zapisu to chodzi o metody find_first_of, find_last_of, find_first_not_of i find_last_not_of. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-04-15 17:46:47 Wykąbinowałem takie coś działą dzięki :)
#include <cstdlib> #include <iostream> #include <string>
using namespace std;
int main() { string a= "Marian,Tadek,Pawian"; string tabl[10]; string check;
for(int i = 0 ; i < 10 ; i++) {
if(a == ',') {
} check = check + a;
}
system("PAUSE"); return EXIT_SUCCESS; } |
|
szyx_yankez |
» 2011-04-15 18:13:59 Można też prosty parser napisać:
#include <string> #include <iostream> using namespace std; int main() { string a = "Jonek,Maria,Borzena,Tadek"; string tab[ 10 ]; size_t wsk = 0, num = 0; while( wsk <= a.size() ) { tab[ num ] += a[ wsk ]; wsk++; if( a[ wsk ] == ',' ) wsk++, num++; } cout << tab[ 0 ] << endl; cout << tab[ 1 ] << endl; cout << tab[ 2 ] << endl; cout << tab[ 3 ] << endl; }
|
|
Mrowqa |
» 2011-04-15 18:20:41 Całkiem nieźle, ja napisałbym raczej coś bardziej dłuższego ( dla początkujących bardziej zrozumiałego ) - to tak trochę nie przyjaźnie wygląda ;)
PS dodam -> jeśli jesteś początkującym radzę Ci sam próbować rozwiązać własne problemy ;) Gotowiec to najgorsze co może być - nic potem nie będziesz wiedzieć, a jak sam napiszesz - możesz się mnóstwo rzeczy nauczyć. Radzę Ci przeanalizować powyższy przykład i strać się go zrozumieć ;) - mogę napisać prostszy :D
Pozdrawiam, Mrowqa |
|
szyx_yankez |
» 2011-04-15 18:39:02 @UP
To można jeszcze prościej? Napisz. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-04-15 18:45:57 Nie chcialem tworzyc nowego posta wiec pisze tutaj mam kolejny problem, wkleje cały kod nie wiem co mam tutaj źle #include <cstdlib> #include <iostream> #include <string> #include <fstream>
using namespace std;
int main() { fstream plik; plik.open( "angielski.txt", ios::in | ios::out ); string a; plik >> a; string tabl[ 10 ]; string check; int b = 0; for( int i = 0; i < a.length(); i++ ) { if( a[ i ] == ',' ) { tabl[ b ] = check; check = ""; b++; } else { check = check + a[ i ]; } } cout << tabl[ 2 ]; system( "PAUSE" ); return EXIT_SUCCESS; }
Chodzi o to żeby program odczytywał z pliku dane np. Tadek,Monika,Piotrek gdy zrobię to w programie czyli string a = "Tadek,Monika,Piotrek" to działa bez problemu a z pliku nie bardzo. W czym moze być problem ?[/i] |
|
« 1 » 2 |