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

Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр. - C++

Восстановить пароль Регистрация
 
VAAADIM
2 / 2 / 1
Регистрация: 14.10.2013
Сообщений: 47
14.10.2013, 00:26     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр. #1
Пожалуйста, помогите решить задачу.

В строке символов вводимой с клавиатуры, вычислить количество разных цифр.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2013, 00:26     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр.
Посмотрите здесь:

C++ строка. Определить количество цифр в строке символов.
C++ Составить программу для вычисления количества арабских цифр в введенном с клавиатуры строке символов
C++ Найти количество цифр в строке символов, используя функции
Подсчитать в вводимой строке количество введенных символов, отличных от пробела. C++
C++ Строка символов вводимая с клавиатуры, найти в строке наибольшее число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
14.10.2013, 01:31     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр. #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
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP (1251); SetConsoleOutputCP (1251);
string source;
cout << "Введите строку содержащую цифры ";
cin >> source;
int sz = source.size();
int cnt=0;
for( int i = 0; i < sz; ++i)if(isdigit(source[i])) cnt++;
int *nubers = new int[cnt];
int *repeats = new int[cnt];
for( int i = 0; i < sz; ++i)repeats[i]=0;
for( int i = 0; i < sz; ++i)if(isdigit(source[i]))nubers[i]=source[i];
for( int i = 0; i < sz; ++i)
for( int j = 0; j < sz; ++j){
if(source[i]==source[j])repeats[i]++;
}
cnt=0;
for( int i = 0; i < sz; ++i) if(repeats[i]==1) cnt++;
cout<<"Найдено "<<cnt<<" различных цифр"<<endl;
system("pause"); 
    return 0;
    }
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
14.10.2013, 01:43     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
#include <set>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::set<char> s(str.begin(), str.end());
    std::cout << std::count_if(s.begin(), s.end(),
        [](const char x) { return isdigit(x); } ) << std::endl;
}
Добавлено через 2 минуты
Я бы даже сказал, что std::unordered_set тут был бы уместнее
IGPIGP
14.10.2013, 13:43     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр.
  #4

Не по теме:

Поглядим, что [ТС] нужно. Можно бы функцией is_jigit() (из старой кавказской библиотеки)) воспользоваться.

Yandex
Объявления
14.10.2013, 13:43     Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр.
Ответ Создать тему
Опции темы

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