У меня есть простой код, в котором я пытаюсь пройти через char*
и разделить его на отдельные слова. Вот простой код, который у меня есть.
#include <iostream>
#include <stdio.h>
int main ()
{
char * string1 = "- This is a test string";
char * character_pointer;
std::cout << "Splitting stringinto tokens:" << string1 << std::endl;
character_pointer = strtok (string1," ");
while (character_pointer != NULL)
{
printf ("%s\n", character_pointer);
character_pointer = strtok (NULL, " ");
}
return 0;
}
Я получаю сообщение об ошибке, которое не позволяет мне это сделать.
Итак, мой вопрос: как пройти и найти каждое слово в char*
. Для моей реальной программы, над которой я работаю, одна из моих библиотек возвращает абзац слов в виде const char*
, и мне нужно составить основу каждого слова с помощью алгоритма определения основы (я знаю, как это сделать, я просто не знаю, как отправить каждое отдельное слово). слово стеммеру). Если кто-то может просто решить, как заставить код примера работать, я смогу это понять. Во всех онлайн-примерах используется char[]
вместо string1
вместо char*
, и я не могу этого сделать.
strtok
. Он безнадежно сломан, а в C++ есть гораздо лучшие решения, использующие алгоритмы из стандартной библиотеки. - person James Kanze   schedule 30.04.2014C++
, а прежде всегоC
. - person DumbCoder   schedule 30.04.2014<algorithm>
(например, такие вещи, какstd::find_first_of
) и, возможно, конструктор с двумя итераторами изstd::string
. - person James Kanze   schedule 30.04.2014