Czy jest jakaś metoda, która po podaniu przez użytkownika n-tego wyrazu to wyszuka w linii ten wyraz i go wypisze?
n-ty wyraz w string
- Rejestracja: dni
- Ostatnio: dni
- Postów: 34
- Rejestracja: dni
- Ostatnio: dni
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
- Rejestracja: dni
- Ostatnio: dni
- Postów: 34
lion137 napisał(a):
Ale to wypisuje tylko znaki nie wyrazy.
Powiedzmy, ze chce wypisac 4 wyraz to go wypisuje
- Rejestracja: dni
- Ostatnio: dni
- Postów: 318
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
- Rejestracja: dni
- Ostatnio: dni
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];
}
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 34
Powiedzmy, ze program jako argument wywolania chce pobrac od uzytkownika numer wyrazu, ktory ma byc wyswietlony.
Wyrazu nie znaku. find() znajduje tylko znak
- Rejestracja: dni
- Ostatnio: dni
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/