0 / 0 / 0
Регистрация: 19.12.2021
Сообщений: 13
1

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

21.12.2021, 08:58. Показов 458. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
где у меня ошибки

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

 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.


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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
 
using namespace std;
 
void function(void(*op)(string), string s1) 
{
    op(s1);
}
 
void f(string s1) 
{
    string str;
    getline(cin, str);
    cout << count_if(str.cbegin(), str.cend(), ispunct)-1 << endl;
 
}
 
void fu(string s1) 
{
    int l=100;
char *s = new char[l];
int k = 0;
cout << "Введите строку: \n\n";
cin >> s;
for (int i = 0; i < strlen(s); i++)
{
k++;
if (!isdigit(s[ i ]))
{
k += 2;
}
}
char *res = new char[k + 1];
for (int i = 0, p = 0; i < strlen(s); i++)
{
res[p++] = s[ i ];
if (!isdigit(s[ i ]))
{
res[p++] = s[ i ];
res[p++] = s[ i ];
}
 
}
 
void fun(string s1) 
{
    string S;
    getline(cin, S);
 
    int pos = 0;
     int uch = 0;
    unsigned char Arr[255] = {};
 
    for (unsigned i = 0; i < S.size(); ++i) {
        uch = (unsigned char)(S[i] - '0');
        if (Arr[uch]++ == 0) {
            S[pos++] = S[i];
        }
    }  
    S.erase(S.begin() + pos,S.end());
    cout << '\n' << S << '\n';
 
}
 
int main()
{
    string s1;
    void (*func)(string);
    cin >> s1;
    func = f;
    cout<<"Сколько знаков препинания в предложении до точки?";
    function(func, s1);
    cout << endl<<"Утроить каждую букву слова";
    func = fu;
    function(func, s1);
    cout << endl<<"Убрать повторяющиеся буквы";
    func = fun;
    function(func, s1);
    cout << endl;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2021, 08:58
Ответы с готовыми решениями:

Скажите где тут ошибки у меня ? Мне надо чтоб можно было найти z ,при любой переменной a
Скажите где тут ошибки у меня ? Мне надо чтоб можно было найти z ,при любой переменной a

У меня ошибки не могу их исправить
#include &quot;Header.h&quot; movie::movie() { name = &quot; &quot;; info = &quot; &quot;; length = 0; age_of_visitor =...

Ошибки я не пойму что от меня хотят
Есть 3 файла. main.cpp, array1.cpp и array1.h. Собственно такие ошибки \ivan\array1.h||In...

Не понятные для меня ошибки
Сделал курсач, должен работать, но почему-то выкидывает ошибки, подскажите, что не так, чтоб...

У меня возникли 2 ошибки
первая, контент вылез за пределы (не знаю как сделать чтобы он прокручивался) и вторая это с footer...

3
Вездепух
Эксперт CЭксперт С++
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,053
21.12.2021, 09:27 2
Цитата Сообщение от studentsergey Посмотреть сообщение
где у меня ошибки
Какие ошибки? О чем речь?
0
0 / 0 / 0
Регистрация: 19.12.2021
Сообщений: 13
21.12.2021, 09:38  [ТС] 3
TheCalligrapher, main.cpp:17:55: error: no matching function for call to ‘count_if(std::__cxx11::basic_string::const_iterator, std::__cxx11::basic_string::const_iterator, )’
17 | cout << count_if(str.cbegin(), str.cend(), ispunct)-1 << endl; ,main.cpp:28:21: error: ‘strlen’ was not declared in this scope
0
Вездепух
Эксперт CЭксперт С++
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,053
21.12.2021, 09:51 4
Цитата Сообщение от studentsergey Посмотреть сообщение
main.cpp:17:55:
Ну если вам компилятор ясно и точно показал, где у вас ошибки, почему вы тогда спрашиваете "где у меня ошибки"?

Цитата Сообщение от studentsergey Посмотреть сообщение
main.cpp:17:55: error: no matching function for call to ‘count_if(std::__cxx11::basic_string::const_iterator, std::__cxx11::basic_string::const_iterator, )’
17 | cout << count_if(str.cbegin(), str.cend(), ispunct)-1 << endl
В С++ несколько версий функции ispunct. Компилятор не знает, какая вам нужна тут.

Также, вызывать функцию ispunct непосредственно для char - это некоректно. Аргумент ispunct должен быть приведен к unsigned char. Поэтому в вашем случае правильнее

C++
1
cout << count_if(str.cbegin(), str.cend(), [](unsigned char c){ return ispunct(c); }) - 1 << endl;
Но почему -1?

Цитата Сообщение от studentsergey Посмотреть сообщение
,main.cpp:28:21: error: ‘strlen’ was not declared in this scope
Для strlen нужно <cstring>

Цитата Сообщение от studentsergey Посмотреть сообщение
void function(void(*op)(string), string s1)
Также, такое имя функции может запросто конфликтовать с std::function. Ваша манера делать вот это безобразное

C++
1
using namespace std;
выйдет вам боком. Кто вас такому научил?
0
21.12.2021, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2021, 09:51
Помогаю со студенческими работами здесь

Скоро диплом сдавать а у меня ошибки(
Здравствуйте, не получается маленький цикл. не могу разобраться почему. надеюсь, что вы мне...

Где у меня ошибка
package Day1.excersices; public class Excer1 { public static void main(String args) { //...

Где у меня ошибка?
помогите, в чем ошибка? .... 1 : print &quot;cколько всего материков?&quot; input a$ if a$=&quot;6&quot; then print...

Где у меня ошибка?
Задача:сверхбольшое число умножить на k. Собственно a-то число, которое вводим, k-на что умножаем...

Где у меня ошибка
Подскажите, где у меня ошибка??не пойму пишет, или нужна скобка или где какой то знак? ЕСЛИ(x&lt;2,5;...

Где у меня ошибка?
Вот код, но он считает неправильно призовые места. Помогите пожалуйста найти ошибку. g,f и тд позже...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru