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

как определить число в строке? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.93
stepansiy
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 17
09.01.2012, 14:16     как определить число в строке? #1
У меня по задаче сказанно ввести строку и найти произведение входящих в строку чисел, не могу понять как определить числа, поскольку интернет весь облазил и полезного мало.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 14:16     как определить число в строке?
Посмотрите здесь:

C++ Для целочисленной матрицы определить в какой строке максимальное число нулей
Определить, сколько в строке слов, содержащих четное число символов. C++
Определить, есть ли в строке(string) хотя бы одно число и определить есть ли в тексте хотя бы два числа. C++
Определить сколько раз в строке встречается заданное число C++
Обработка файлов. Определить среднее число знаков препинания, используемых в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.01.2012, 14:28     как определить число в строке? #2
0. pos = 0
1. пока str[pos] != цифра pos = pos + 1
2. begin = pos
3. пока str[pos] == цифра pos = pos + 1
4. end = pos - 1
5. переписать символы из str с begin по end в другую строку и перевести её в число любым известным способом (например, при помощи atoi)
6. factor = factor * num
7. pos = end + 1
8. если pos != str.length() goto 1
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.01.2012, 18:15     как определить число в строке? #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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
int main()
{
    char* s = "fg.15.m-g0.2-12mm";
    double num = 1, tmp;
    for(; *s; ++s)
    {
        if(isdigit(*s) || '-' == *s || '.' == *s)
        {
            tmp = strtod(s, &s);
            if(tmp)
            {
                num *= tmp;
                --s;
            }
        }
    }
    printf("%lf\n", num);
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
09.01.2012, 18:27     как определить число в строке? #4
Цитата Сообщение от stepansiy Посмотреть сообщение
У меня по задаче сказанно ввести строку и найти произведение входящих в строку чисел, не могу понять как определить числа, поскольку интернет весь облазил и полезного мало.
- ниже простой алгоритм на плюсах
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 <cstdlib>
using namespace std;
 
int main()
{
    char str[1024] = {0};
    cout<<"Enter text (less than 1024 chars)\n";
    cin.getline(str,1024);
    long mult = 1;//Наше произведение
    long nDig = 0;//Кол-во цифр в строке
    for(int i = 0; str[i] != '\0'; i++)
    {
        if(isdigit(str[i]))
        {
            nDig++;
            mult *= (str[i] - '0');//ASCI коды цифр идут с 48 т.е. '0'
            //по сути делаем(пример с 5-кой) '5' - '0' = 53 - 48 = 5
        }
    }
    if(nDig == 0)
        cout<<"Input string not contain digits\n";
    else
        cout<<"Mult of digits in string : "<<mult<<endl;
    system("pause");
    return 0;
}

Не по теме:

PS:Для "всех продвинутых жителей форума, которые любят ставить мне костыли" сообщаю, что я писал под данного ТС очевидно что человек начинающий, ясное дело можно использовать string и алгоритм сделать лучше...

Миниатюры
как определить число в строке?  
Yandex
Объявления
09.01.2012, 18:27     как определить число в строке?
Ответ Создать тему
Опции темы

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