C++ Строки. Как посчитать число слов в строке

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


  • Некоторые символы необходимо экранировать обратным слешэм: \n, \t, \v, \\, \’, \? и некоторые другие
Я не стал их добавлять в строку разделителей, чтобы было более очевидно, что это за строка такая, в более полной версии строка разделителей могла бы выглядеть вот так:

Это связано с тем, что эти символы используются в С++ коде как спецсимволы.
Алгоритм решения задачи по выделению слов из строки в лоб: собирать слово посимвольно. Если выбираемый из строки символ оказывается разделяющим символом, то обозначаем, что встретили разделитель и начинаем новую сборку слова. Чтобы множество подряд идущих разделителей не создавало пустые слова, я использую счётчик подряд идущих разделителей, который сбрасываю при каждом новом обнаружении начала слова. Я сбрасываю счётчик в -1, чтобы при обнаружении первого символа-разделителя он принял значение false. Мне просто удобно таким образом отслеживать, что именно этим разделителем начинается возможная последовательность из нескольких разделителей, идущих подряд. Вы можете это немного переиначить под свой стиль, когда поймёте принцип работы.

Один комментарий на «“C++ Строки. Как посчитать число слов в строке”»

  1. Алина:

    как посчитать количество чисел в заданном тексте?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/nikolay-sekunov/programmirovanie-na-c-v-linux/?lfrom=15589587
Яндекс.Метрика