0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 14

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

24.01.2013, 19:16. Показов 18811. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка. Определить, сколько раз заданное сочетание символов встречается в строке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2013, 19:16
Ответы с готовыми решениями:

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

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

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

11
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2013, 19:24
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string str = "Hey , banana , I am banana , I am banana", str2;
    std::cin >> str2;
    std::istringstream ist(str);
    std::cout << std::count(std::istream_iterator<std::string>(ist),
        std::istream_iterator<std::string>(), str2) << std::endl;
}
2
 Аватар для Amaziinq
0 / 0 / 2
Регистрация: 24.01.2013
Сообщений: 11
24.01.2013, 20:02
MrGluck указал нам на верный вариант решения данной задачи, а вот мой - видимо, не совсем рациональный (совсем не рациональный), но рабочий код с использованием C-string.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main()
{
    char a[]={"Hey , banana , I am banana , I am banana"};
    char b[]={"banana"};
    int count(0);
    for (int i = 0 ; i <= strlen(a) ; i++)
    {
        if (a[i]==b[0])
        {
            if (a[i+1]==b[1])
            {
                if (a[i+2]==b[2])
                {
                    if (a[i+3]==b[3])
                    {
                        count++;
                    }
                }
            }
        }
    }
 
cout<<count<<endl;
return 0;
}
Позаимствовал у MrGluck текст.
0
Неэпический
 Аватар для Croessmah
18129 / 10713 / 2064
Регистрация: 27.09.2012
Сообщений: 27,006
Записей в блоге: 1
24.01.2013, 20:19
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main(){
    char str1[]="Hey , banana , I am banana , I am banana";
    char str2[]="banana";
    char * p=strstr(str1,str2);
    size_t count=0;
    while(p){
        ++count;
        p=strstr(p+1,str2);
    }
    std::cout<<count<<std::endl;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2013, 20:20
Цитата Сообщение от Amaziinq Посмотреть сообщение
MrGluck указал нам на верный вариант решения данной задачи
ну ка, обоснуйте
0
 Аватар для Amaziinq
0 / 0 / 2
Регистрация: 24.01.2013
Сообщений: 11
24.01.2013, 20:23
Цитата Сообщение от MrGluck Посмотреть сообщение
ну ка, обоснуйте
Что, простите, обосновать?
То, что ваш код прост, лаконичен и выполняет поставленую задачу?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2013, 20:25
Amaziinq, прошу прощения, я, слепец, прочел не так не верный вариант
1
 Аватар для Amaziinq
0 / 0 / 2
Регистрация: 24.01.2013
Сообщений: 11
24.01.2013, 20:31
MrGluck, вы, друг мой, сумели открыть остальным глаза .
Айда ещё чего решим.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
24.01.2013, 20:36
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstring>
 
int main() {
 
    char str[256];
    std::cout << "string: ";
    std::cin.getline(str, sizeof(str));
    
    char substr[256];
    std::cout << "substring: ";
    std::cin.getline(substr, sizeof(substr));
    
    size_t substrLen = std::strlen(substr);
    size_t substrCount = 0;
    
    char* pstr = std::strstr(str, substr);
        
    while(pstr != NULL) {
                
        ++substrCount;
        pstr = std::strstr(pstr + substrLen, substr);
    }        
    
    std::cout << "count: " << substrCount << std::endl;
}
0
алкокодер
 Аватар для UnsKneD
157 / 153 / 41
Регистрация: 27.12.2012
Сообщений: 550
24.01.2013, 20:38
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char str[] = "123aba2aba4abaaba";
char ptr[] = "aba";
int count = 0;
 
int sizeP = 0; 
while(ptr[sizeP]!='\0'){ ++sizeP; }
 
for(int i = 0, j = 0; str[i]!='\0'; i++){
    if( str[i] == ptr[j] ){ j++; };
    if(j == sizeP ){ j = 0; count++; }
    };
    
    printf("%d ", count);
}
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
24.01.2013, 20:55
Amaziinq, у вас происходит выход за пределы массива
C++
1
2
3
4
5
6
7
#include <cassert>
// ...
for (int i = 0 ; i <= strlen(a); i++)
{
    assert(i + 3 < strlen(a));
    // ...
}
MrGluck, необходимо было определить число подстрок(сочетаний символов), а не токенов.
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2013, 21:04
то то мне на душе неспокойно)
Вот, исправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main()
{
    std::string str = "Hey, banana, I am banana, I am banana!", str2;
    std::cin >> str2;
    std::size_t pos = -1, counter = 0;
    while((pos = str.find(str2, pos+1)) != std::string::npos)
        counter++;
    std::cout << counter << std::endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2013, 21:04
Помогаю со студенческими работами здесь

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

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

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

Определить, сколько раз в строке встречается заданная комбинация символов
определить сколько раз в строке встречается Комбинация символов С ++

Сколько раз заданное слово встречается в заданной строке
Не знаю решения в консоли


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

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

Новые блоги и статьи
Непрерывная интеграция для пакета 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