Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
1

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

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


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

Очень нужна на завтра
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2010, 09:10
Ответы с готовыми решениями:

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

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

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

Написать функцию, которая получает строку и возвращает другую строку
Помогите пожалуйста Написать функцию, которая принимает строку и возвращает длину последнего слова...

3
Эксперт С++
5816 / 3468 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
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;
}
1
113 / 113 / 28
Регистрация: 05.07.2009
Сообщений: 225
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;
}
Вот мой вариант.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6833 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2010, 12:21

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

Написать функцию, которая в качестве входного аргумента получает строку, а возвращает строку перевернутую
Написать функцию, которая в качестве входного аргумента получает строку, а возвращает строку...

Описать рекурсивную функцию, которая вычисляет количество вхождений определённого слова в строку
Описать рекурсивную функцию, которая вычисляет количество вхождений слова “Привет” в текстовую...

Написать функцию, которая принимает на вход строку и возвращает количество слов в нем
Мне нужно написать функцию, которая принимает на вход строку и возвращает количество слов в нем....

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


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

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

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