Мне нужна помощь в создании функции для разбиения предложения на слова, и эта функция должна работать с предложениями различной длины.
Вот пример кода:
void spilt_sentence(string sentence)
{}
int main()
{
std::string sentence1= "Hello everyone";
std::string sentence2= "Hello I am doing stuff";
split_sentence(sentence1);
split_sentence(sentence2);
return 0;
}
Я видел кто-то использует std :: istringstream, чтобы получить каждое слово перед каждым пробелом, но я не знаю, как это работает. Это дает мне ошибку, когда я помещаю std :: istringstream ss (предложение); в коде. Кроме того, я использую C ++ 98, и я компилирую свою программу с помощью Cygwin. Какие-либо ведет? Спасибо.
Редактировать: функция создаст несколько переменных в зависимости от количества слов в предложении.
Редактировать: я на самом деле работаю над программой LinkedList и чем я занимаюсь попытка сделать это - разделить предложение на слова, а затем сгенерировать новые узлы, содержащие каждое слово.
Вот фактический код (примечание: я немного его изменил, поэтому он не совсем совпадает с моим реальным). Я не использую struct для Node), и скажем, предложение 1 «Привет всем», а предложение 2 «Привет, я делаю вещи».
The expected output will be:
linkedlist1:
"hello"<->"everyone"
linkedlist2:
"hello"<->"I"<->"am"<->"doing"<->"stuff"
внутри LinkedList. cpp:
void LinkedList::add(std::string sentence)
{
//breaks down the sentence into words
std::istringstream ss(sentence);
do
{
std::string word;
ss >> word;
//store them in nodes in a linkedlist
Node* new_tail = new Node(word);
if (size == 0)
{
head = new_tail;
tail = new_tail;
}
else
{
new_tail->set_previous(tail);
tail->set_next(new_tail);
tail = new_tail;
}
new_tail = NULL;
size++;
}
while(ss);
}
[FIXED] При компиляции появляется сообщение об ошибке, в котором говорится, что std :: istringstream ss имеет настройки по умолчанию, но тип является неполным. Что мне делать?
ошибка