• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podział stringa(wiersza) na wyrazy i zapis każdego wyrazu do osobnego stringa

Object Storage Arubacloud
0 głosów
3,404 wizyt
pytanie zadane 6 marca 2016 w C i C++ przez Armando Obywatel (1,870 p.)

Witajcie!

Rozwiązuje sobie zadania maturalne i napotkałem problem. Muszę przeczytać z pliku wiersz, w którym jest 5 wyrazów. To nie jest problemem ale muszę teraz ten wiersz porozdzielać na 5 osobnych stringów i później je porównać długością. Dla przykładu:

abcd cdba dbac cbad dcba - używam getline(f,linia); i mam w stringu linia cały wiersz.
Teraz tego stringa dzielę wykorzystując to, że między wyrazami są spacje, ale nie mam pojęcia jak to wykorzystać w kodzie do przypisania każdego wyrazu z osobna do oddzielnego stringa.

Próbowałem wykorzystać pętle for

        for(int i=0; i<dl; i++)
            if(linia[i]!=32)
            pom1[i] = linia[i];

, gdzie pom1 to string pomocniczy, ale jakoś bez sukcesu. Poza tym pozostaje problem przełączania zmiennych w taki sposób by po napotkaniu spacji przez pętle for powinna zmienić się zmienna string na kolejną (pom2) by zapisać drugi wyraz itd.

Możliwe, że ten tok rozumowania jest trochę błędny ale jakoś nic innego nie mogę wymyślić frown

Z góry dziękuję za pomoc smiley

1 odpowiedź

+1 głos
odpowiedź 6 marca 2016 przez niezalogowany
wybrane 6 marca 2016 przez Armando
 
Najlepsza

A nie lepiej jest ci wczytywać zawartość pliku poprzez operator >> ? Tym sposobem będziesz miał od razu wyrazy podzielone ze względu na białe znaki

 

fstream file(...);
std::string str[lines][words]

int line = 0;
while(!file.eof())
{
  for(int i=0;i<words;++i)
    file >> str[line][i];

  ++line;
}

 

komentarz 6 marca 2016 przez Armando Obywatel (1,870 p.)
Z tego co wiem to takie rozwiązanie pozwoli mi jedynie na wczytanie do zmiennej pierwszego wyrazu a resztę wyrazów w wierszu pominie
komentarz 6 marca 2016 przez niezalogowany
No nie, będzie wczytywało znaki do białego znaku, więc w przypadku gdy znasz ilość wyrazów na linię to tak jest wygodniej pobrać wyrazy
komentarz 6 marca 2016 przez Armando Obywatel (1,870 p.)

Racja, zadziałało! laugh

Super, bardzo Ci dziękuję!

Podobne pytania

0 głosów
2 odpowiedzi 371 wizyt
pytanie zadane 12 grudnia 2019 w C i C++ przez Ganci Użytkownik (670 p.)
0 głosów
1 odpowiedź 111 wizyt
pytanie zadane 23 sierpnia 2017 w C# przez Rout Bywalec (2,350 p.)
–1 głos
1 odpowiedź 663 wizyt
pytanie zadane 4 lutego 2019 w C i C++ przez XavRock Obywatel (1,390 p.)

92,626 zapytań

141,486 odpowiedzi

319,847 komentarzy

62,009 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...