n-ty wyraz w string

0

Czy jest jakaś metoda, która po podaniu przez użytkownika n-tego wyrazu to wyszuka w linii ten wyraz i go wypisze?

0
RipvanWinkle napisał(a):

Czy jest jakaś metoda, która po podaniu przez użytkownika n-tego wyrazu to wyszuka w linii ten wyraz i go wypisze?

Poczytaj o strtok, tokenize strings lub std::istringstream

0
lion137 napisał(a):

http://www.cplusplus.com/reference/string/string/substr/

Ale to wypisuje tylko znaki nie wyrazy.
Powiedzmy, ze chce wypisac 4 wyraz to go wypisuje

2

Ktoś mówił "armata"? Nie? No to czas najwyższy

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <vector>

int main() {
    using namespace std;
    
    string sentence = "Ala ma kota a kot ma ale";
    size_t word_index = 2;
    
    istringstream iss { sentence };
    
    vector<string> vec {
    	istream_iterator<string>(iss),
        istream_iterator<string>()
    };
    
    cout << vec[word_index];
}
0
RipvanWinkle napisał(a):
lion137 napisał(a):

http://www.cplusplus.com/reference/string/string/substr/

Ale to wypisuje tylko znaki nie wyrazy.
Powiedzmy, ze chce wypisac 4 wyraz to go wypisuje

Ja Tam widze metode find, ktora znajduje substring, jak nie o to chodzi, to Wytlumacz jasniej.

0

Powiedzmy, ze program jako argument wywolania chce pobrac od uzytkownika numer wyrazu, ktory ma byc wyswietlony.
Wyrazu nie znaku. find() znajduje tylko znak

0

Ale string nie numeruje wyrazow tylko znaki.

0

No to będziesz musiał liczyć spacje, i samodzielnie znaleźć ten wyraz. Bo string to w zasadzie tablica znaków, a nie wyrazów. zajrzyj zresztą np tu https://www.fluentcpp.com/2017/04/21/how-to-split-a-string-in-c/

1 użytkowników online, w tym zalogowanych: 0, gości: 1