Аватар для JohnBlack123
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520

Определить сколько раз встречается данное слово в строке

15.02.2019, 13:18. Показов 3528. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане !
Условие задачи :
Определить, сколько раз в строке встречается данное слово.
Желательно использовать строки из С (массивы char).
Прошу объяснить, как работает следующий код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    char sentence[] = "Linux Ubuntu, Linux RedHat";
    char word[] = "Linux";
 
    int len = strlen(word);
    int count = 0;
 
    for (char *src = sentence; (src = strstr(src, word)) != nullptr; src += len)
        count++;
 
    std::cout << " count : " << count << std::endl;
 
    return 0;
}
В этом решении используется функция strstr, на сколько я знаю, она ищет первое вхождение одной строки в другую. Но не совсем ясно, как работает этот цикл :
C++
1
2
for (char *src = sentence; (src = strstr(src, word)) != nullptr; src += len)
        count++;
Мне кажется, что он проходит по строке, пока результат функции strstr не будет nullptr (нет вхождения) с шагом-длинной введенного слова и только тогда увеличивает количество на 1.
Верно ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2019, 13:18
Ответы с готовыми решениями:

Определить сколько раз данное слово встречается в тексте
У меня небольшая просьба 1)обьясните зачем нужен #define _CRT_SECURE_NO_DEPRECATE 2)помогите закончить код что мне нужно добавить? ...

Определить сколько раз в строке встретилось данное слово
Напишите программу, которая считывает текст из файла и выводит на экран все строки файла, после каждой строки добавляя, сколько раз в ней...

Определить сколько раз в строке встречается заданное слово
Помогите пожалуйста в строках вообще ничего непонимаю! Задача:1 Определить сколько раз в строке встречается заданное слово. Задача:2 ...

3
39 / 31 / 7
Регистрация: 31.01.2019
Сообщений: 81
15.02.2019, 14:03
вот же:
Возвращает указатель на первое вхождение строки string2 в строку string1, или пустой указатель, если строка string2 не является частью строки string1
0
 Аватар для JohnBlack123
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
15.02.2019, 14:05  [ТС]
Цитата Сообщение от k0l0p0k Посмотреть сообщение
пустой указатель это и есть nullptr
Это ясно. Немного не понятно сама реализация цикла
0
39 / 31 / 7
Регистрация: 31.01.2019
Сообщений: 81
15.02.2019, 14:23
Лучший ответ Сообщение было отмечено JohnBlack123 как решение

Решение

src сначала указывает на начало sentence
нашли первое вхождение "Linux", увеличили счетчик на 1
дальше ахтунг:
сместили указатель на длину слова "Linux"
и заново ищем
ищем не в "Linux Ubuntu, Linux RedHat"
а в " Ubuntu, Linux RedHat"
и так до упора

Добавлено через 5 минут
еще
src в объявлении цикла два раза модифицируется
сначала вот src = strstr(src, word)
затем src += len

тут получается нашли слово, и передвинули указатель за это слово
как бы "обрезая" строку

Добавлено через 6 минут
вот в этих строках фактически поиск будет производится:
"Linux Ubuntu, Linux RedHat" 1я итерация
" Ubuntu, Linux RedHat" 2я
" RedHat" тут вернет nullptr
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2019, 14:23
Помогаю со студенческими работами здесь

Строка: Определить, сколько раз в строке встречается заданное слово
Определить, сколько раз в строке встречается заданное слово.

Определить, сколько раз встречается в строке самое короткое слово
Дана строка содержащая текст на русском языке.Определить, сколько раз встречается в строку самое короткое слово в С++

Определить сколько раз встречается в строке самое длинное слово
дана строка, содержащий текст на русском языке. Определить сколько раз встречается в ней самое длинное слово.

Задано предложение y. Проверить, сколько раз встречается данное слово х в предложении у.
Задано предложение y. Проверить, сколько раз встречается данное слово х в предложении у. помогите пожалуйста

Найти, сколько раз слово встречается в строке
Написати ф-ю, яка знаходить скільки раз зустрічається задане слово в рядку Ніяк не виходить зробити , можливо хтось допоможе:cry: Язык...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru