nekosefa

Для каждого из слов предложения указать, сколько раз оно встречается в предложении

13.01.2012, 14:52. Показов 4521. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Не могу решить две задачи в с++ , поскажите пожалуйста:

1. Для каждого из слов предложения указать, сколько раз оно встречается в предложении.
2. В предложении исключить группы символов, расположенных между скобками «(» и «)». Сами скобки тоже должны быть исключены.

если можно то с объяснением, со строками в си совсем не дружу

Заранее благодарна!
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2012, 14:52
Ответы с готовыми решениями:

Для каждого из слов данного текста указать, сколько раз оно встречается в предложении
Для каждого из слов данного текста указать, сколько раз оно встречается в предложении

Для каждого из слов данного текста указать, сколько раз оно встречается в предложении
Для каждого из слов данного текста указать, сколько раз оно встречается в предложении.С чего начать и как попроще решить эту задачу?

Для каждого из слов указать, сколько раз оно встречается в заданном тексте
Дан текст, содержащий n строк. Для каждого из слов указать, сколько раз оно встречается.

3
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
13.01.2012, 16:22
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1. заранее извиняюсь за излишние комментарии

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <sstream>
#include <map>
#include <string>
#include <locale>
#include <iostream>
 
using std::map;
using std::string;
using std::stringstream;
using std::locale;
using std::cout;
 
 
 
void call2 (const char* str)
    {
 
    stringstream s1;  //строковый поток
    s1<<str; // строка считывается в поток
    string s;
    map<string,int> M;  //map для подсчета вхождений слов
    
    while(!s1.eof()) // выполняется до "конца строки"
    {
        s1>>s;
        if(s.find(',')!=s.npos||s.find('!')!=s.npos) //удаляем запятые и воскл знаки, чтобы считать слова, 
        s.pop_back(); //можно добавить еще символы для удаления
 
    M[s]++;  //найдя повтор увеличиваем второе значение ("счетчик") в map;
 
    }
    map<string, int>::iterator IT;
    IT = M.begin();
 
    while (IT!=M.end()) // вывод результата
    {
        cout<<IT->first<<" "<<IT->second<<"\n";
        ++IT;
    }
 
    };
 
 
 
int main (int args, char* arg[])
{
    char* str = "привет как дела, привет как дела!";
 
    
    locale::global(locale("RUS")); //русский язык в консоль
    
    call2(str); // вызов для подсчета вхождений слов и вывода результата
 
    return 0;
}

2.


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
31
32
33
34
35
36
37
38
39
40
41
42
#include <string>
#include <locale>
#include <iostream>
using std::string;
using std::locale;
using std::cout;
 
void call3 (const char* str)
        { 
 
                string s;
        s= str;
                    
        size_t a = s.find_first_of('(');
        size_t b = s.find_first_of(')');
 
        if(a!=s.npos&&b!=s.npos) //найдены ли скобки?
        {
        s.erase(a,++b-a);// удаление (*****) и дальнейший поиск     
        return call3(s.c_str());    //рекурсивный вызов
        }
 
        else
        {
            cout<<s; // если мы здесь то все скобки и их содержимое удалено
            return;
        }
        
};
 
 
 
int main (int args, char* arg[])
{
        char* str = "привет (как) (дела,) привет (как) дела!"; 
        
        locale::global(locale("RUS"));
        
        call3(str);
 
        return 0;
}
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
13.01.2012, 20:29
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от nekosefa Посмотреть сообщение
1. Для каждого из слов предложения указать, сколько раз оно встречается в предложении.
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
31
32
33
34
35
36
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
class FindWord
{
    string toFind;
    string::iterator it;
    public:
    FindWord(string s) :toFind(s),it(toFind.begin()){}
    bool operator()(char ch)
    {
        if(ch==*it)
         it++;
        else
        {
            it=toFind.begin();
            return false;
        }
        if(*it==toFind[toFind.length()])
        {
            it=toFind.begin();
            return true;
        }
 
        return false;
    }
};
 
int main()
{
    string str="some string some some string";//some = 3
    FindWord f("some");
    cout<<count_if(str.begin(),str.end(),f);
}
Добавлено через 2 минуты
AzaKendler, увидел у вас строки по локализациям
C++
1
locale::global(locale("RUS"));
У меня после этого приложение сразу экстренно закрывается.
0
 Аватар для zarko97
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
29.01.2017, 00:40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <algorithm>
 
int main() {
 
    std::string s = "AAA (SDW) SSD(TTY(DA)ASD)A()  AR (P) -M";
 
    int brackets = 0;
    auto new_end = std::remove_if(s.begin(), s.end(), [&brackets](char ch){
        brackets += (ch == '(');
        brackets -= ((ch == ')') && (brackets > 0));
 
        return brackets > 0 || ch == ')';
    });
 
    s.erase(new_end, s.end());
 
    std::cout << s << std::endl;
 
    return 0;
}
Добавлено через 3 минуты
можно в лоб с извратом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int col1 = std::count(str.begin(), str.end(), '('), col2 = std::count(str.begin(), str.end(), ')');
    for (std::string::iterator itr = str.begin(); itr != str.end(); ++itr)
    {
        if (*itr == '(')
        {
            --col1;
            while (!(*itr == ')')) { str.erase(itr); if (*itr == '(') --col1; }
            while (!(col1 == col2))
            {
                if (*itr == '(')   --col1;
                if (*itr == ')') { --col2; str.erase(itr); }
                else str.erase(itr);
            }
        }
    }
    return str;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2017, 00:40
Помогаю со студенческими работами здесь

Для каждого из слов заданного текста указать сколько раз оно встречается
Для каждого из слов заданного текста указать сколько раз оно встречается.

Для каждого слова из заданного списка найти, сколько раз оно встречается в тексте
Разработать программу с использованием функции пользователя. Указанную в задании строку сформировать в вызывающей функции и передать ...

Для каждого символа заданного текста указать, сколько раз встречается в тексте
Для каждого символа заданного текста указать, сколько раз встречается в тексте. Сообщение об одном символе не должно встречаться больше,...

Для каждого символа заданного текста указать, сколько раз он встречается в тексте
Доброго времени суток , прошу помочь с решением задачи : Для каждого символа заданного текста указать, сколько раз он встречается в...

Для каждого символа заданного текста указать сколько раз он встречается в тексте
Для каждого символа заданного текста указать сколько раз он встречается в тексте на С++


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

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

Новые блоги и статьи
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru