Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Rodzielenie tekstu po napotkaniu spacji (??)

Ostatnio zmodyfikowano 2013-03-06 17:06
Autor Wiadomość
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ź ;)
P-77808
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:
C/C++
std::string GetFirstWord( std::string str )
{
   
    std::string myWord;
   
    int pozycjaZnaku = str.find_first_not_of( " " ); //pomija spacje
   
    //spacja ma numer 32 w ASCII
    for( int i = pozycjaZnaku; str[ i ] != 32; i++ )
    {
        word += str[ i ];
    }
    return word;
}
P-77812
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.
P-77813
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.
P-77814
« 1 »
  Strona 1 z 1