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

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

Восстановить пароль Регистрация
 
yura332
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
06.07.2010, 09:10     Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... #1
Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку и в случае, если цифр 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++
Описать строку А. Из входной последовательности символов записать в строку А только цифры C++
Как сделать функцию которая получает цифру и возвращает строку? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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
110 / 110 / 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
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
Yandex
Объявления
06.07.2010, 12:21     Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку...
Ответ Создать тему
Опции темы

Текущее время: 08:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru