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

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

26.11.2016, 14:02. Показов 1774. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка символов S.
Определить сколько раз в ней встречается символ + и сколько раз символ *.
Задачу реализовать двумя способами: с использованием библиотечных функций и с использованием собственных функций, обрабатывая строку как массив символов.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2016, 14:02
Ответы с готовыми решениями:

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

Определить, какие символы и сколько раз встречаются в данной строке. C++
Дана строка. Определить, какие символы и сколько раз встречаются в данной строке.

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

Подсчитать сколько раз в заданной строке встречаются символы ‘a’ и ‘1’
Помогите плиз((( 1.Дана символьная строка S. Скопировать посимвольно ее в другую символьную...

10
424 / 228 / 87
Регистрация: 25.03.2009
Сообщений: 744
26.11.2016, 14:17 2
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string s {"+++**asd"};
 
    std::cout << "количество + : " <<
    std::count(begin(s), end(s), '+');
 
    std::cout << std::endl;
 
    std::cout << "количество * : " <<
        std::count(begin(s), end(s), '*');
 
    return 0;
}
Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    size_t count_plus = 0;
    size_t count_star = 0;
 
    std::string s {"+++**asd"};
 
    for (char ch : s)
    {
        if (ch == '+') count_plus++;
        if (ch == '*') count_star++;
    }
 
    std::cout << "количество + : " << count_plus;
    std::cout << std::endl;
    std::cout << "количество * : " << count_star;
 
    return 0;
}
2
Модератор
Эксперт CЭксперт С++
5150 / 2330 / 339
Регистрация: 20.02.2013
Сообщений: 5,720
Записей в блоге: 20
26.11.2016, 14:40 3
Андрейка, годно. Только если у Вас begin и end - это STL-обёртки, то надо подключить заголовочный файл iterator. И да, они тоже в пространстве имён std, так что они должны быть прописаны с квалификатором std:: - std::begin и std::end. А вообще, у строк типа std::string есть свои собственные функции-члены begin и end.
0
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 27
26.11.2016, 16:59  [ТС] 4
Андрейка, std::string s {"+++**asd"}; - компилятор ругается
0
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
26.11.2016, 17:05 5
feles__alba, скорее ввсего не поддерживает с++11 поменяйте на
C++
1
std::string s("+++**asd");
0
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 27
28.11.2016, 09:30  [ТС] 6
obivan, еще сердится на for (char ch:s), пишет что цикл недопустим

Добавлено через 8 минут
Андрейка, каким компилятором ты пользуешься?
0
Модератор
Эксперт CЭксперт С++
5150 / 2330 / 339
Регистрация: 20.02.2013
Сообщений: 5,720
Записей в блоге: 20
28.11.2016, 11:06 7
Цитата Сообщение от feles__alba Посмотреть сообщение
C++
1
for (char ch:s)
feles__alba, это тоже из C++11. Цикл for, основанный на диапазоне (range-based for). Замени его на обычный цикл for с счётчиком. Или на цикл for с итераторами. Либо используй алгоритм for_each (перевод сайта там автоматический, поэтому, местами довольно странные лингвистические перлы получаются; оригинал тут).
0
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 27
03.12.2016, 12:06  [ТС] 8
gru74ik, пытаюсь переделать в С++98, ибо моя IDE не поддерживает 11. компилятор говорит, что begin и end не объявлены
0
Модератор
Эксперт CЭксперт С++
5150 / 2330 / 339
Регистрация: 20.02.2013
Сообщений: 5,720
Записей в блоге: 20
03.12.2016, 12:19 9
feles__alba, вот так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string s = "++++aa**asd" ;
 
    std::cout
        << "Total amount of characters '+' is: "
        << std::count( s.begin(), s.end(), '+')
        << "\n\nTotal amount of characters '*' is: "
        << std::count( s.begin(), s.end(), '*');
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 27
03.12.2016, 12:39  [ТС] 10
gru74ik, всё работает, только я забыла сказать, что строка должна вводиться с клавиатуры)

Добавлено через 11 минут
gru74ik, всё, разобралась) спасибо большое)
0
sourcerer
04.12.2016, 12:44     Определить сколько раз в заданной строке встречаются указанные символы
  #11
 Комментарий модератора 
feles__alba, вы темы-то зачем дублируете? Правила форума так и не прочитали? А зря. Дублирование тем - это нарушение пункта 5.5.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2016, 12:44

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

Определить, сколько раз в строке встречаются заданные символы
Дана строка символов. Определить, сколько раз в строке встречаются символы ’а’, ‘б’, ‘о’, ‘щ’,...

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

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


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

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

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