Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196
1

Удалить слова которые встречаются заданное число раз

18.04.2018, 13:26. Показов 2084. Ответов 5
Метки нет (Все метки)

Кому не сложно, перенесите пожалуйста с pascal на C++

Pascal
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
Program anton;
uses crt;
const n=10;
var a:array [1..n] of string;
s1,c,t,w:string;
k,i,e: integer;
s:string;
begin
clrscr;
writeln ('ввести текст');
readln (s);
k:=0;
While pos (' ',s) <> 0 do begin
t:=copy(s,1,pos (' ',s)-1);
inc (k);
A[k]:=t;
Delete (s,1,pos (' ',s));
end;
for i:=1 to k do writeln (a[i]);
for e:=1 to k do  begin
for i:=1 to k do
if a[i]>a[e] then
begin
w:=a[i];
a[i]:=a[e];
a[e]:=w;
end;
end;
writeln;
for i:=1 to k do
write (a[i],' ');
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2018, 13:26
Ответы с готовыми решениями:

Удалить из строки слова, которые встречаются заданное число раз (нужны комментарии)
Помогите пояснить программу пожалуйста? Написать комментарии к каждой строке?) #include &lt;iostream&gt;...

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

Строки в С++ - вывести слова, которые встречаются один раз
вывести только те слова сообщения,которые встречаются в нем ровно один раз.

В тексте найти слова , которые встречаются больше N раз
Введен текст . В этом тексте найти слова , которые встречаються больше N раз . Эти слова записать в...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
5
1742 / 1335 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
18.04.2018, 14:19 2
Условие задачи приложите, пожалуйста
1
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196
18.04.2018, 14:41  [ТС] 3
Цитата Сообщение от Hitoku Посмотреть сообщение
Условие задачи приложите, пожалуйста
- Отредактировать заданный текст, удалив из него слова, которые встречаются заданное число раз.
0
Объявлятель переменных
1003 / 317 / 292
Регистрация: 24.09.2011
Сообщений: 1,091
18.04.2018, 14:43 4
Калька с исходного кода. "Перевёл" как есть, т.е. ошибки не исправлял. А они там есть. Из самых явных — если после последнего слова нет пробела, то оно игнорируется. Единственная отсебятина — учтён момент с нумерацией элементов массива.
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 <iostream>
#include <string>
 
int main()
{
    const int n = 10;
    std::string a[n];
    std::string s;
    
    std::cout << "ввести текст" << std::endl;
    std::getline (std::cin, s);
       
    int k = 0;
    
    while (s.find(' ') != std::string::npos) {
        std::string t;
        t = s.substr(0, s.find(' '));
        a[k] = t;
        k++;
        s.erase(0, s.find(' ') + 1);
    }
    
    for (int i = 0; i < k; i++) {
        std::cout << a[i] << std::endl;
    }
    
    for (int e = 0; e < k; e++) {
        for (int i = 0; i < k; i++) {
            if (a[i] > a[e]) {
                std::string w = a[i];
                a[i] = a[e];
                a[e] = w;
            }
        }
    }
    
    std::cout << std::endl;
    
    for (int i = 0; i < k; i++) {
        std::cout << a[i] << ' ';
    }
}
Цитата Сообщение от Valentin-TT Посмотреть сообщение
- Отредактировать заданный текст, удалив из него слова, которые встречаются заданное число раз.
Вообще-то, выложенный Вами код запрашивает строку, разбивает её на отдельные слова, сортирует их по возрастанию и выводит. Увы-с.
1
Модератор
Эксперт С++
10492 / 8731 / 5275
Регистрация: 18.12.2011
Сообщений: 23,343
18.04.2018, 14:47 5
Лучший ответ Сообщение было отмечено Valentin-TT как решение

Решение

См. ссылки внизу страницы
1
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
19.04.2018, 13:59 6
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 <string>
#include <regex>
#include <cstdlib>
#include <unordered_map> 
 
 
int main()
{
    system("chcp 1251");
    std::string str("апр апрапр  ап ап ап ооо, апр."), sres(str); 
    int const tgt = 2; // удалить слова, встречающиеся 2 раза
    std::regex reg("[а-яА-ЯёЁ[:alpha:]\\d]+");
    std::unordered_map<std::string, int> ump;
    for (std::sregex_token_iterator ib{ str.begin(), str.end(), reg }, ie; ib != ie; ++ib)
    {
        ++ump[*ib];
    }
    
    int diff = 0;
    for (std::sregex_iterator ib{ str.begin(), str.end(), reg }, ie; ib != ie; ++ib)
    {
        if (tgt == ump[ib->str()])
        {
            sres.erase(ib->position() - diff, ib->length());
            diff += ib->length();
        }
    }
    std::cout << sres << std::endl;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2018, 13:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Удалить нечётные элементы, которые встречаются в массиве один раз
удалить нечетные элементы, которые встречаются в массиве только один раз c++

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

Вывести только те слова сообщения, которые встречаются в тексте один раз
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.