Czy jest jakaś metoda, która po podaniu przez użytkownika n-tego wyrazu to wyszuka w linii ten wyraz i go wypisze?
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
lion137 napisał(a):
Ale to wypisuje tylko znaki nie wyrazy.
Powiedzmy, ze chce wypisac 4 wyraz to go wypisuje
Coś czuję, że to będzie coś podobne do tego:
https://stackoverflow.com/questions/236129/the-most-elegant-way-to-iterate-the-words-of-a-string
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];
}
RipvanWinkle napisał(a):
lion137 napisał(a):
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.
Powiedzmy, ze program jako argument wywolania chce pobrac od uzytkownika numer wyrazu, ktory ma byc wyswietlony.
Wyrazu nie znaku. find() znajduje tylko znak
Ale string nie numeruje wyrazow tylko znaki.
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/