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

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Как-то на других языках такая задача проще решается, да и использование STL позволяет решать просто, не парясь. А разве так интересно? Нужно уметь применять различные приемы и нужно уметь думать. Почему-то при ответе на такую задачу многие ограничиваются условным тем, что два подряд пробела в строке не бывают и считают слова по встречаемым пробелам. Но это в корне неправильный подход. Да, проще, да так можно посчитать слова, но все-таки это не то. Есть и такие, кто разбивает строку на слова, используя strtok. Опять-таки — это плохой подход, есть подход получше с точки зрения оптимальности.

Код C++ (CodeBlock)

Как видите, код для подсчета слов в строке не такой сложный и совсем не обязательно использовать контейнеры STL, boost или придумывать что-то из ряда вон выходящее. Теперь легко задавать любые разделители и их подряд идущее количество совсем не мешает считать слова строки. Единственное, что такие слова как слова с дефисом могут считаться за 2, но это уже тонкости наших языковых правил, к ПК не относящиеся.

Прошу также обратить внимание на символ ‘\’, Текущий показанный код не посчитает его разделяющим символом. Этот символ входит в такие символы, которые нужно экранировать. Для того, чтобы он учитвылся как должен, нужно писать ‘\\’,
а вообще текущий массив разделителей

кавычки тоже были экранированы.

🙂 Надеюсь материал оказался вам полезен.
Также можете посмотреть http://stackoverflow.com/questions/3672234/c-function-to-count-all-the-words-in-a-string
_________________

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

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

  • Somebody говорит:

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

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

    не проверял.

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

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

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

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

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

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

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

Поиск

 
     

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

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

Демотиватор наполовину пуст, наполовину полон

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

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