C++ Работа со строками. Создание массива слов без string и <string.h>

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.
  • Внимание. Здесь немного своеобразная задача разбивки предложения на слова. Если вам надо просто разделить, то этот материал скорее вреден вам чем полезен, если вы столкнулись со специфической задачей, в которой ограничение похоже на название темы, то тогда пример имеет смысл, да и для просто любопытствующих глаз имеет смысл

Есть множество задач в C++ по работе со строками. Одна из задач — разделение слов. Вроде бы не так уж и сложно, но если дают ограничения, то сложность иногда заметно возрастает. Одна из таких задач разобрать строку на слова с последующим запиханием слов в массив для последующей обработки. И есть же функции, облегчающие решение (например strtok), но задача имеет ограничения, типа не использовать контейнер string не использовать string.h, вот тогда привыкшим к хорошему и правильному ждет некоторый дискомфорт. По большому счету решение таких задач едва ли нужно, но позволяет узнавать некоторые приемы, которые в последующем времени вполне смогут пригодиться.
Разделить символьный массив на подмассивы без использования контейнера string, без использования функций из <string.h>
Решение я показываю для компилятора minGW (IDE CodeBlocks)
Перед листингом оговорюсь, что выделение памяти - дорогостоящая операция и поэтому лучше выделять сразу большой кусок чем выделять по одному кусочку под каждый символ. Массив, в который будут запихиваться слова будет часто содержать много пустых ячеек, но это быстрее чем если бы нужно было выделять для каждого символа место на лету.

  • Итак, показываю исходник C++ minggw (CodeBlocks)

В общем такое делать, вроде, и не имеет смысла,ведь это все делается намного эффективнее и быстрее без ограничений этих, но тем не менее сами приемы, использованные в этом примере вполне могут оказаться полезными новичку.

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор исходники есть?

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок