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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
motoo
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 26
#1

Задача на указатели и стек - C++

10.12.2011, 14:53. Просмотров 1441. Ответов 3
Метки нет (Все метки)

Задали строчную переменную, которая содержит последовательность символов, среди которых есть цифры. Составить программу, которая превращает эту переменную в десятичное число, изымая символы, не являющиеся цифрами. Число формировать, начиная с младшего разряда, используя стек.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 14:53     Задача на указатели и стек
Посмотрите здесь:

Задача на указатели C++
C++ Задача на указатели.Указатель на указатель.
задача на массивы и указатели С++ C++
C++ Задача на массив и указатели.(массив из случайных чисел)
C++ Задача на стек (сформировать 2 стека из положительных и отрицательных)
C++ Стек и указатели
C++ Задача на указатели (Рассчитать в одной функции сумму и произведение значений элементов произвольной строки двухмерного массива)
Задача на классы и статические указатели C++
Стек через указатели — ошибка доступа C++
Контейнеры(ящики) с товаром (задача на стек) C++
C++ Задача на указатели
C++ Указатели на функцию. Задача 2: функция предикат с void указателем

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
380 / 272 / 20
Регистрация: 26.12.2009
Сообщений: 875
10.12.2011, 15:14     Задача на указатели и стек #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 <stack>
 
using namespace std;
 
int main()
{
    char* str = "some1234text5yes67no8";
    stack<int> dStack;
    while(*str)
    {
        if(*str >= '0' && *str <= '9')
            dStack.push(*str - '0');
        str++;
    }
    unsigned long long digit = 0;
    int step = 1;
    while(!dStack.empty())
    {
        digit += dStack.top()*step;
        step *= 10;
        dStack.pop();
    }
    
    cout << digit << endl;
    return 0;
}
motoo
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 26
10.12.2011, 15:19  [ТС]     Задача на указатели и стек #3
А можеш немного прокоментировать код??
Mayonez
 Аватар для Mayonez
380 / 272 / 20
Регистрация: 26.12.2009
Сообщений: 875
10.12.2011, 15:41     Задача на указатели и стек #4
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 <stack>
 
using namespace std;
 
int main()
{
    char* str = "some1234text5yes67no8";    //задаем строку
    stack<int> dStack;                      //создаем стек из целых чисел
    while(*str)                             //пока не достигнут конец строки
    {
        if(*str >= '0' && *str <= '9')      //если текущий символ - число
            dStack.push(*str - '0');        //добавляем его в стек
        str++;                              //следующий символ
    }
    unsigned long long digit = 0;           //результат
    int step = 1;                           //коефициент для умножения
    while(!dStack.empty())                  //пока стек не пуст
    {
        digit += dStack.top()*step;         //добавляем до результата значение верхушки стека, умноженное на коефициент 
        step *= 10;                         //следующий розряд
        dStack.pop();                       //удаляем верхушку стека
    }
    
    cout << digit << endl;                  //выводим результат
    return 0;
}
Yandex
Объявления
10.12.2011, 15:41     Задача на указатели и стек
Ответ Создать тему
Опции темы

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