Господа, подскажите, есть ли в стандартной библиотеке (желательно) алгоритм разбиения текста на отдельные слова (массив слов)? Или может есть еще где такой алгоритм...
Я ж замучаюсь условия прописывать или разделители вспоминать и придумывать...
Здравствуйте, Аноним, Вы писали:
А>Господа, подскажите, есть ли в стандартной библиотеке (желательно) алгоритм разбиения текста на отдельные слова (массив слов)? Или может есть еще где такой алгоритм...
А>Я ж замучаюсь условия прописывать или разделители вспоминать и придумывать...
strtok или поиском по слову tokenizer
Здравствуйте, Аноним, Вы писали:
А>Господа, подскажите, есть ли в стандартной библиотеке (желательно) алгоритм разбиения текста на отдельные слова (массив слов)? Или может есть еще где такой алгоритм...
А>Я ж замучаюсь условия прописывать или разделители вспоминать и придумывать...
Например так (разделяет по пробельным символам):
// Этот include нужен только для вывода результата в std::cout
#include <iostream>
// std::istream_iterator и std::insert_iterator
#include <iterator>
// std::copy
#include <algorithm>
// std::string
#include <string>
// std::stringstream
#include <sstream>
// std::vector
#include <vector>
int _tmain(int argc, _TCHAR* argv[])
{
std::string phrase = "Hello this world!";
std::vector<std::string> words;
std::copy(std::istream_iterator<std::string>(std::stringstream(phrase)),
std::istream_iterator<std::string>(),
std::insert_iterator<std::vector<std::string> >(words, words.begin()));
std::cout << words[0] << std::endl; // Hello
std::cout << words[1] << std::endl; // this
std::cout << words[2] << std::endl; // world!
return 0;
}
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Господа, подскажите, есть ли в стандартной библиотеке (желательно) алгоритм разбиения текста на отдельные слова (массив слов)? Или может есть еще где такой алгоритм...
А>>Я ж замучаюсь условия прописывать или разделители вспоминать и придумывать...
А>strtok или поиском по слову tokenizer
пасибо, strtok хооршая штука, сама все делает
а вот что такое tokenizer, в мсдн не нашел...
а нет ли функции типа strtok, только с параметром коллбак-функции, для проверки значения разделителя? —
проверять просто на alphanumeric
Здравствуйте, Аноним, Вы писали:
А>>strtok или поиском по слову tokenizer
А>пасибо, strtok хооршая штука, сама все делает
А>а вот что такое tokenizer, в мсдн не нашел...
Это boost/tokenizer.
www.boost.org тебе в помощь.
А>а нет ли функции типа strtok, только с параметром коллбак-функции, для проверки значения разделителя? —
А>проверять просто на alphanumeric
Токенайзер можно научить.
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Аноним, Вы писали:
А>>>strtok или поиском по слову tokenizer
А>>пасибо, strtok хооршая штука, сама все делает
А>>а вот что такое tokenizer, в мсдн не нашел...
К>Это boost/tokenizer. www.boost.org тебе в помощь.
А>>а нет ли функции типа strtok, только с параметром коллбак-функции, для проверки значения разделителя? —
А>>проверять просто на alphanumeric
К>Токенайзер можно научить.
мда, что то до буста у меня раньше руки не доходили... пора начинать
спасибо