[C++] Rodzielenie tekstu po napotkaniu spacji (??)
Ostatnio zmodyfikowano 2013-03-06 17:06
krystian11102 Temat założony przez niniejszego użytkownika |
[C++] Rodzielenie tekstu po napotkaniu spacji (??) » 2013-03-06 16:44:01 Witam. Mam pytanko.. W jaki sposób mam rodzielić tekst po napotkaniu spacji ? (Nie wiem jak wytłumaczyć).. Chodzi mi o to:
Wiersz Poleceń (CMD) posiada takie coś fajnego że rodziela komendy .. Tj. komenda [blabla] [blabla] .. Jak to zrobić w c++ ? .. Szukam, szukam i nic... Sam nawet tego nazwać nie umiem. :) Może wiecie o co chodzi.. Jeśli tak, to prosiłbym o szybką odpowiedź ;) |
|
RazzorFlame |
» 2013-03-06 17:04:44 CMD ma napisany parser. Możesz to zrobić wczytywając całą linie: getline( cin, stringDoWczytania ); Później rozdzielasz je. Np tak: std::string GetFirstWord( std::string str ) { std::string myWord; int pozycjaZnaku = str.find_first_not_of( " " ); for( int i = pozycjaZnaku; str[ i ] != 32; i++ ) { word += str[ i ]; } return word; }
|
|
Admixior |
» 2013-03-06 17:05:01 Jeżeli możesz użyć klasy string to wystarczy użyć 2 funcji find_first_of -podając jako parametry spacje i odkąd ma zacząć (tj. jeden znak od ostatniej spacji lub od początku) druga funkcja to substr(..) podając jako parametr miejsce spacji+1 żeby nie było spacji na początku później ile znaków ma skopiować (miejsce następnej minus aktualnej).
Jeśli nie możesz korzystać/nie umiesz to na zwykłych funkcjach też da się zrobić. Sam po prostu wyszukujesz w pętli co chcesz i kopiujesz odkąd chcesz.
|
|
RazzorFlame |
» 2013-03-06 17:06:51 @UP wyprzedziłem cię. W swoim przykładzie pokazałem jak wczytać pierwszy wyraz. Mysle ze dasz rade napisać wczytywanie następnych wyrazów. |
|
« 1 » |