Как посчитать количество слов в строке c
В качестве практики работы со строками напишем небольшую программу для подсчета слов.
Вначале определяется переменная text, которая будет содержать введенную с консоли строку:
Определяем строку разделителей, такие как знаки пунктуации, пробелы, символ перевода строки, которые не являются словами:
Стоит отметить, что символ перевода строки здесь определен больше для демонстрации, поскольку при вводе выше через std::getline ввода строки будет завершен, когда мы нажмем на Enter. Соответственно введенная строка никогда не будет содержать символ \n. Однако если мы изменим символ, до которого идет ввод строки через std::getline , или в качестве источника ввода будет использовать, например, текст из файла, тогда символ перевода строки тоже будет играть определенную роль.
Поскольку количество слов может быть неопределенным, то для хранения слов определяем вектор:
Перед обработкой введенного текста фиксируем индекс первого символа первого слова в тексте. Для этого применяется функция find_first_not_of() , которая возвращает первый индекс любого символа, который не входит в строку separators:
Далее в цикле while смотрим, является ли полученный индекс действительным индексом:
Например, если в строке одни только символы из набора separators, тогда функция find_first_not_of() возвратит значение std::string::npos , что будет означать, что в тексте больше нет непунктационных знаков.
И если start указывает на действительный индекс начала слова, то находим индекс после последнего символа слова, который помещаем в переменную end:
Для нахождения позиции окончания слова используем функцию find_first_of() , которая возвращает первую позицию любого символа из separators, начиная с индекса start+1
Причем может быть, что функция find_first_of() не найдет ни одного символа из separators (например, слово является поседним в тексте, и после него нет никаких знаков пунктуации или пробелов), в этом случае конечный индекс равен длине текста.
После того, как мы нашли начальный индексы слова и его конец, то с помощью функци substr() получаем подстроку между этими индексами, добавляем слово в вектор, переустанавливаем start на начальный индекс следующего слова и повторяем действия цикла:
Посчитать количество слов в строке
Для ввода строки нельзя использовать функцию cin в данном случае, поскольку эта функция осуществляет ввод строки до пробела или перевода строки. Поэтому воспользуемся методом get функции cin :
cin.get(УказательНаСтроку, МаксимальноеЧислоСимволов);
Условием окончания строки является символ с кодом равным 0 (нуль-символ, ‘\0’ ). После ввода строки организуем цикл по элементам строки до ее окончания. Перед циклом убираем пробелы, введенные в начале строки (до первого слова). Условием определения следующего слова в строке является наличие какого-то символа после пробела. Именно это условие увеличивает счетчик count на 1.
Реализация на C++

Результат выполнения
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Как подсчитать количество слов в тексте С#
Сегодня мы узнаем самый простой и примитивный способ подсчета количества слов в тексте с помощью C#. Данный вариант состоит всего из нескольких строк и прост в реализации.
Итак, создадим программу, в которой пользователь будет вводить в консоль текст, а программа будет в ответ писать количество слов в нём.
Весь код состоит всего из нескольких строк:
Как видно из представленной реализации, мы создаем массив строк textMass и простую строковую переменную text. В переменную text считывается введенный пользователем текст (строка 3), а в массив textMass добавляются элементы из строки text, расчлененные пробелом при помощи метода Split (строка 4). Иными словами, каждый элемент данного массива — это как раз одно слово, заключенное в тексте между пробелов.
Например, если в консоли будет написано «Мама мыла раму», то элементы массива будут следующими: textMass[0] = «Мама», textMass[1] = «мыла», textMass[2] = «раму».
Дальше программа просто выведет на консоль количество элементов данного массива (6 строка) — это и будет количество наших слов.
Примечание: если в тексте встречаются знаки препинания, то они будут помещены в массив вместе с предшествующим им словом. Однако условлено, что после знаков препинания должен стоят пробел, поэтому на качество подсчета слов это никак не повлияет.
Подсчитать кол-во слов в строке C#
Нужно в тексте подсчитать количество определенных слов, например:
Словом можно убить, словом можно спасти.
Нужно посчитать, сколько раз в строке(или тексте) встречается слово «Словом», и записать результат в переменную.
Для разделения строки на слова можно воспользоваться методом Split и передать в параметре символы для деления.
А я бы сделал так:
Есть к примеру у нас строка:
Нам надо для начала перевести ее в нижний регистр ( ToLower() ), далее разбить на слова. Как на мой взгляд это хорошо делает Regex.Split (ибо ему не надо задавать все знаки для «разбития»). Ну и дальше, имея массив всех слов, мы можем сгруппировать их и составить новую коллекцию, которая будет содержать кол-во найденных слов и само слово. Исходя из этого, наша строка будет примерно следующей:
Собственно все. Можно теперь смело выводить все, что нам требуется:
Если нам не нужно знать о других словах, то можно немного переписать:
* Select в данном примере является неким удобством, что бы мы знали и слово и кол-во найденных соответствий. На выходе получим int? , который вернет число найденных слов, либо null, если такого слова не найдено.
Ну, если нужно просто кол-во слов, то можно вообще поступить следующим образом: