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

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


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

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

3 комментария: C++ Строки. Как посчитать число слов в строке

  • Somebody говорит:

    У меня в Dev-C++ выводит `inSpaces’ undeclared (first use this function) А как надо это сделать declared?

    Автор сайта отвечает:
    это обозначает, что переменная не объявлена

    не проверял.




    0



    0
  • Алина говорит:

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




    0



    0
  • Дмитро говорит:

    даний код підраховує лише кількість букв а не слів

    Автор сайта отвечает:
    Опечатка. Исправлена




    0



    0

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

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

Поиск

 
     

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

https://www.litres.ru/byarne-straustrup/dizayn-i-evoluciya-yazyka-s-22852186/?lfrom=15589587
Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

В автобусе молодой паренек обращается к девушке: - Девушка, Вы случайно не программистка? - Да. А как Вы догадались? - Да, у Вас такое глупое выражение лица! - Дурак! - Да, я тоже программист.

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

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