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

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

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

Как из строки выбрать только цифры - C++

28.04.2014, 22:43. Просмотров 1489. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста,как из строки выбрать только цифры,а потом их сложить??!
То есть есть некая строка "123asd" нужно чтобы получилось 6...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 22:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как из строки выбрать только цифры (C++):

Как считать только цифры из строки? - C++
Здравствуйте! Есть строка с различными символами (например "sd712hpq34"), нужно считать только числа из этой строки в int переменную (т.е....

Как извлечь только цифры из строки - C++
Есть файл и в нем строки вида 00:00:00,000 --> 00:00:00,200 Нужно извлечь только цифры из каждой такой строки и одну часть с цифрами до...

Из заданной строки получить только цифры - C++
В какой то строке цифры с перемешкой буквами. Из строки надо взять только цифры. Пример: dcfgvbhjn123456 Вывод: 123 456. Надо...

При вводе строки выводить только цифры - C++
#include "stdafx.h" #include "stdio.h" #include "iostream" #include "ctype.h" using namespace std; void read(char *x) { int i...

строки.В заданный непустой текст входят только цифры. Определить: - C++
Текст является восьмеричной записью числа, кратного 5. как написать поиск цифры 8? и определение того, оканчивается ли число на 0 или 5.

Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз - C++
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в...

6
Chernobyl
215 / 215 / 67
Регистрация: 30.09.2012
Сообщений: 545
28.04.2014, 23:05 #2
leprikon4eg, Предлагаю такое решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    string str = "123as4";
    int b;
    int sum = 0;
    for(int i = 0; i < str.size(); i++)
    {
        if(isdigit(str[i]))
        {
            b=str[i]-'0';
            sum = sum + b;
        cout<< b<<endl;
        }
    }
    cout << sum<<endl;//выведет 10
1
leprikon4eg
1 / 1 / 0
Регистрация: 30.03.2014
Сообщений: 40
28.04.2014, 23:10  [ТС] #3
Цитата Сообщение от Chernobyl Посмотреть сообщение
C++
1
2
3
if(isdigit(str[i]))
     {
         b=str[i]-'0';
я прошу прощения,но этот момент я не понял,можете объяснить его?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
 int a[100],d=0;
     char str2[250];
     for(int i=0;i<strlen(Kstr);i++)
     {
         if(Kstr[i]>=48 && Kstr[i]<=57)
             str2[i]=Kstr[i];
         a[i]=str2[i];
         d+=a[i];
     }
вот что я наколдовал.. это корректно?
это просто кусок программы))
0
Chernobyl
215 / 215 / 67
Регистрация: 30.09.2012
Сообщений: 545
28.04.2014, 23:15 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
leprikon4eg,
C++
1
2
3
4
5
6
if(isdigit(str[i])) //проверяем есть ли этот символ числом, соответсвенно здесь отсеиваем все НЕ числа
 
b=str[i]-'0';//получаем само число, то есть от 0 до 9,
//если сделать вот так
b=str[i]
//то это не будет нашим числом ибо это код символа в чар, при помощи вот этого -'0', мы делаем из кода символа чар нужное нам число(от 0до9)
1
leprikon4eg
1 / 1 / 0
Регистрация: 30.03.2014
Сообщений: 40
28.04.2014, 23:20  [ТС] #5
Цитата Сообщение от Chernobyl Посмотреть сообщение
C++
1
if(isdigit(str[i]))
C++
1
 if(Kstr[i]>=48 && Kstr[i]<=57)
Равносильно этой проверке?
0
Chernobyl
215 / 215 / 67
Регистрация: 30.09.2012
Сообщений: 545
28.04.2014, 23:34 #6
leprikon4eg, Кажется да, но isdigit как минимум облегчает чтение кода + входит в такую, скажем так, групу полезных вещей как isalpha() isupper() islower() и так далее.
А берется оно отсюда http://www.asciitable.com/ , как видите,числа от 0 до 9 входят в заданый вами диапазон значений
1
leprikon4eg
1 / 1 / 0
Регистрация: 30.03.2014
Сообщений: 40
28.04.2014, 23:35  [ТС] #7
Огромное спасибо! однако не долюбливаю я эти строчки.. очень слаб в них) но с задачей справился. Спасибо!
0
28.04.2014, 23:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 23:35
Привет! Вот еще темы с ответами:

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

Сформировать две строки - первая содержит только числа из исходной строки, а вторая – только слова - C++
1.Дан текст, состоящий из предложений. Ввод текста осуществляется в несколько строк (не более 20). Признак завершения ввода – ввод пустой...

Выбрать из текста только те символы, которые встречаются в нем только один раз - C++
Здравствуйте, помогите пожалуйста написать программу:) Условие. Дана строка, содержащая текст на русском языке. Выбрать из него только те...

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


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

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

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