Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yura332
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
#1

Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... - C++

06.07.2010, 09:10. Просмотров 958. Ответов 3
Метки нет (Все метки)

Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку и в случае, если цифр 5, 6, 7, 8, 9 больше за 0, 1, 2, 3, 4 – замещает каждую из цифр 0, 1, 2, 3, 4 на последовательность символов “”,“*”,“**”,“***”,“****”.

Очень нужна на завтра
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2010, 09:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... (C++):

Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. - C++
Здраствуйте, вы не могли б мне помоч, у меня проблема з задачей, в коде постоянно выдаёт ошыбки на мове С, , и это еще перевести в...

Напишите функцию, которая получает на вход строку цифр, и возвращает соответствующее целочисленное значение - C++
Напишите функцию atoi (), которая получает строку цифр, и возвращает соответствующее int. Например, atoi ("123") - это 123

Напишите функцию, которая определяет, можно ли из символов, входящих в строку А, составить строку В - C++
Помогите с задачей, пожалуйста. Даны строки А и В. Напишите функцию, которая определяет, можно ли из символов, входящих в А, составить...

Как сделать функцию которая получает цифру и возвращает строку? - C++
Лучше всего наглядный пример, пожалуйста. :) Благодарю всех заранее.

Количество вхождений всех символов в строку - C++
Видел похожую тему, но там задача была проще, так как надо было найти конкретный символ. В моем случае строка вводится пользователем....

Найти количество вхождений каждой буквы в заданную строку - C++
спросить у человека строку, надо посчитать количество вхождений каждой буквы и вывести статистику, например vvedi stroku: hello WORLD L -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
06.07.2010, 11:29 #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
#include <iostream>
#include <string>
 
void n_occur(std::string& str)
{
    size_t n_table[10]={};
    std::string::iterator it=str.begin();
    while(it!=str.end())
    {
        if(((*it)<='9')&&((*it)>='0'))
            ++n_table[(*it)-'0'];
        ++it;
    }
    for(size_t i=0; i<10; ++i)
        std::cout << '\'' << i << "\' - " << n_table[i] << std::endl;
    size_t a=0, b=0;
    size_t* sz_ptr=n_table;
    for(size_t i=0; i<5; ++i, ++sz_ptr)
        a+=*sz_ptr;
    for(size_t i=0; i<5; ++i, ++sz_ptr)
        b+=*sz_ptr;
    std::cout << "Number of \'0\'-\'4\': " << a << std::endl;
    std::cout << "Number of \'5\'-\'9\': " << b << std::endl;
    if(b>a)
    {
        size_t offset=0;
        std::string m("01234");
        while((offset=str.find_first_of(m, offset))!=std::string::npos)
            str.replace(offset, 1, (str[offset]-'0'), '*');
    }
}
 
int main()
{
    std::string string;
    std::getline(std::cin, string);
    n_occur(string);
    std::cout << string << std::endl;
    system("pause");
    return EXIT_SUCCESS;
}
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
06.07.2010, 12:05 #3
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
#include <iostream> 
using namespace std;
int main()
{
    bool condition = false;
    char buffer[1024];
    int numbers[10] = {0};
    cin.getline(buffer, 1024);
    for(int i = 0; buffer[i] != '\0'; i++)
        if(buffer[i] <= '9')
            numbers[buffer[i] - 48]++;
    for(int i = 0; i < 10; i++)
        cout << i << " - " << numbers[i] << endl;
    if((numbers[5] + numbers[6] + numbers[7] + numbers[8] + numbers[9]) > (numbers[0] + numbers[1] + numbers[2] + numbers[3] + numbers[4]))
        condition = true;
    for(int i = 0; buffer[i] != '\0'; i++)
        if(buffer[i] < '5' && condition)
            for(; (buffer[i] - 48) > 0; buffer[i]--)
                cout << "*";
        else
            cout << buffer[i];
    cout << endl;
    return 0;
}
Вот мой вариант.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
06.07.2010, 12:21 #4
выводит количество вхождений в строку каждой цифры, и не более того...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
int main(){
    std::string buf;
    
    std::cout << "Enter some digits: ";
    std::cin >> buf;
    for ( int i = 0; i < 10; ++i )
        std::cout << i << " : " << std::count(buf.begin(), buf.end(), i + '0') << std::endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2010, 12:21
Привет! Вот еще темы с ответами:

Подсчитать количество вхождений в строку определенных символов - C++
Помогите написать программу... Данная строка символов S. Подсчитать : а ) сколько раз среди данных символов встречается символ + и...

Подсчитать количество вхождений в строку заданной последовательности символов - C++
Дана строка символов. Подсчитать количество вхождений в строку заданной последовательности символов. Строка для обработки ввести с...

Запросить строку, посчитать количество вхождений каждой буквы, и вывести статистику - C++
Не могу решить!Помогите!

Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель - C++
Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель (вследствие...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.07.2010, 12:21
Ответ Создать тему
Опции темы

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