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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
vetalxxx
1 / 1 / 0
Регистрация: 22.11.2009
Сообщений: 55
#1

Количество введеных цифр в консоли - C++

20.02.2010, 21:16. Просмотров 1912. Ответов 25
Метки нет (Все метки)

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

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Пользователь вводит строку. Определить количество букв (рус eng), количество цифр и количество остальных - C++
в чем проблема не пойму работает на английских буквах на цифрах и остальные символы вроде считает а вот русские не хочет их забивает как...

Как изменить размер цифр,букв в консоли С++ - C++
Здравствуйте,как изменить размер цифр,букв в консоли С++? Нужно цифры от 1 до 15 сделать большими,например как шрифт 23,24 в ворде....

Определить количество цифр в числе n и сумму всех его цифр - C++
Дано натуральное n , определить количество цифр в числе n и сумму всех его цифр. Значение n ввести с клавиатуры. Добавлено через...

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

Рекурсия: количество цифр в числе, сумма цифр и реверс числа - C++
Вот задание: Написать программу, которая запрашивает у пользователя целое число, на экран выводит сколько цифр в числе, их сумму и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
20.02.2010, 21:31 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
 
bool isDigit(int ch){ return isdigit(ch); }
 
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::string::size_type cnt = std::count_if(buf.begin(), buf.end(), isDigit);
    std::cout << cnt << " digits in string" << std::endl;
    
    return 0;
}
1
vetalxxx
1 / 1 / 0
Регистрация: 22.11.2009
Сообщений: 55
20.02.2010, 22:13  [ТС] #3
у меня вылазит ошибка
C++
1
Error   1   error C3861: 'isDigit': identifier not found    c:\users\user\documents\visual studio 2008\projects\sort\sort\sort.cpp  117 Sort
проблема решилась
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
20.02.2010, 22:17 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
 
 
int main(){
        std::string buf;
        std::cout << "String: ";
        std::getline(std::cin, buf);
        std::string::size_type cnt = std::count_if(buf.begin(), buf.end(), isdigit);
        std::cout << cnt << " digits in string" << std::endl;
        
        return 0;
}
easybudda, мож лучше так?
1
vetalxxx
1 / 1 / 0
Регистрация: 22.11.2009
Сообщений: 55
20.02.2010, 22:20  [ТС] #5
мне нужно чтоб считалось количество чисел через пробел а этот алгоритм считает количество всех чисел
http://img4.immage.de/200235e644a.png
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
20.02.2010, 22:24 #6
Андрейка, не, так не будет работать, я уж пробовал. isdigit() возвращает int а надо bool. То, что я написал, точно работает, это что-то у человека скопировать не получилось...
0
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
20.02.2010, 23:59 #7
Цитата Сообщение от vetalxxx Посмотреть сообщение
мне нужно чтоб считалось количество чисел через пробел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <sstream>
 
int main()//=========================================================
{
    size_t i(0);
 
    std::string s = " 1 23 456 789 0 ";
    std::istringstream is ( s );
 
    std::cout << is.str() << std::endl;
    //--------------------
    while ( is >> s ) i++;
    //--------------------
    std::cout << i << std::endl;
 
    return 0;
}//==================================================================
1
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
21.02.2010, 00:25 #8
mirso, я так понял, в строке не только числа могут быть.

Цитата Сообщение от vetalxxx Посмотреть сообщение
мне нужно чтоб считалось количество чисел через пробел а этот алгоритм считает количество всех чисел
Количество цифр он считает...
Сразу бы так и написали... Вот Вам считалка целых чисел без знака:
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
#include <iostream>
#include <sstream>
#include <string>
#include <cctype>
 
 
bool isNum(const std::string& s){
    for ( std::string::const_iterator i = s.begin(); i != s.end(); ++i )
        if ( !isdigit(*i) )
            return false;
    return true;
}
 
int main(){
    std::string buf;
    size_t count = 0;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    
    std::istringstream ist(buf);
    std::string str;
    while ( ist >> str )
        if ( isNum(str) )
            ++count;
    
    std::cout << count << " numbers in string." << std::endl;
    
    return 0;
}
1
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
21.02.2010, 00:32 #9
Цитата Сообщение от easybudda Посмотреть сообщение
mirso, я так понял, в строке не только числа могут быть.
Цитата Сообщение от vetalxxx Посмотреть сообщение
а этот алгоритм считает количество всех чисел
http://img4.immage.de/200235e644a.png
ну да!
C++
1
if ( std::atoi( s.c_str() ) || s == "0" ) i++;
1
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
21.02.2010, 01:01 #10

Не по теме:

mirso, беда в другом - человек разницы между числами и цифрами не замечает...



Добавлено через 14 минут
Цитата Сообщение от mirso Посмотреть сообщение
C++
1
if ( std::atoi( s.c_str() ) || s == "0" ) i++;
Кстати, тоже не совсем комильфо - atoi("123abc") вернёт 123.
2
mirso
21.02.2010, 01:05
  #11

Не по теме:

Знаю!
Так проверку ты написал уже!
Эт я усе варьянты пробувую!

0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.02.2010, 01:26 #12
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>
#include <sstream>
#include <string>
 
using namespace std;
 
int isdigit(string &s)
{
    for (int i = 0; i < s.size(); ++i) if (!isdigit(s[i])) return 0;
    return 1;
}
 
int main()
{
    string s;
    getline(cin,s);
    stringstream tmp;
    tmp << s;
    int top = 0;
    while (tmp >> s) if (isdigit(s)) ++top;
    cout << "You have " << top << " digits" << endl;
    system("pause");
    return 0;
}
Добавлено через 44 секунды
Запись чисел в масив организируйте сами..
1
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
21.02.2010, 01:43 #13
С стиль
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
/* возвращает 0, если s - беззнаковое целое */
int isNum(const char *s){
    if ( !s )
        return EOF;
    for ( ; isdigit(*s); ++s )
        ;
    return *s;
}
 
#define SPCHARS " ,.\t\n"
 
int main(void){
    char buf[BUFSIZ], *p;
    size_t cnt = 0;
    
    printf("String: ");
    if ( !fgets(buf, BUFSIZ, stdin) )
        exit(1);
    for ( p = strtok(buf, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
        if ( !isNum(p) )
            ++cnt;
    printf("%d numbers.\n", cnt);
    
    exit(0);
}
1
vetalxxx
1 / 1 / 0
Регистрация: 22.11.2009
Сообщений: 55
21.02.2010, 13:47  [ТС] #14
Спасибо всем за ответы
Спасибо outoftime твой код мне подходит
http://img3.immage.de/2102a930.png
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.02.2010, 15:43 #15
vetalxxx, по каким критериям цените?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2010, 15:43
Привет! Вот еще темы с ответами:

Напишите программу, выводящую на экран количество цифр в этом числе и сумму этих цифр - C++
я начинающий! помогите! мне на екзам! Дано натуральное число а (a&lt;100). Напишите программу, выводящую на экран количество цифр в этом...

С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр) - C++
С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр)

Запрет ввода любых символов кроме цифр в консоли - C++
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку или с помощью isdigit() или через...

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес - C++
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое...


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

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

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