Это еще один вопрос, на который я не могу найти ответ, потому что каждый пример, который я могу найти, использует векторы, а мой учитель не разрешает нам использовать векторы для этого класса.
Мне нужно читать в текстовой версии книги по одному слову, используя (любое количество) пробелов' '
и (любое количество) небуквенных символов в качестве разделителей; поэтому любые пробелы или знаки препинания в любом количестве должны разделять слова. Вот как я это сделал, когда в качестве разделителя нужно было использовать только пробелы:
while(getline(inFile, line)) {
istringstream iss(line);
while (iss >> word) {
table1.addItem(word);
}
}
РЕДАКТИРОВАТЬ: пример прочитанного текста и то, как мне нужно его разделить.
"Если бы они знали, вы бы этого хотели, развлечение было бы".
Вот как должна быть разделена первая строка:
If
Oни
было
известный
ты
желал
it
в
развлекательная программа
бы
имеют
Текст будет содержать как минимум все стандартные знаки препинания, а также такие вещи, как многоточие ...
двойное тире --
и т. д.
Как всегда, заранее спасибо.
РЕДАКТИРОВАТЬ:
Итак, использование второго строкового потока будет выглядеть примерно так?
while(getline(inFile, line)) {
istringstream iss(line);
while (iss >> word) {
istringstream iss2(word);
while(iss2 >> letter) {
if(!isalpha(letter))
// do something?
}
// do something else?
table1.addItem(word);
}
}
std::isalnum
, чтобы проверить, следует ли сохранять символ. Или используйтеremove_if
в строке. - person Neil Kirk   schedule 24.11.2014