Как разбить строку (извлечь слова) без stringstream и strtok в C ++? - PullRequest
0 голосов
/ 25 апреля 2018

Как разбить строку (извлечь слова) без stringstream и strtok в C ++?

Я хочу разбить строку, содержащую несколько последовательных пробелов между каждым словом, и она может занимать несколько строк, а также иметь пробел перед началом новой строки.

Пока у меня есть это, но он может обрабатывать только один пробел

while (input.compare(word) != 0)
{
   index = input.find_first_of(" ");
   word = input.substr(0,index);
   names.push_back(word);
   input = input.substr(index+1, input.length());
}

Спасибо

1 Ответ

0 голосов
/ 25 апреля 2018

Вот ссылка:

std::string input = "   hello   world   hello    "; // multiple spaces
std::string word = "";
std::vector<std::string> names;

while (input.compare(word) != 0)
{
   auto index = input.find_first_of(" ");
   word = input.substr(0,index);

   input = input.substr(index+1, input.length());

   if (word.length() == 0) {
      // skip space
      continue;
   }

   // Add non-space word to vector
   names.push_back(word);
}

Регистрация Wandbox

...