Нужно написать программу для стеков

Нужно написать программу, которая представляет число, введенное в виде строчки символов, в виде стека и считает сумму его цифр. Я вообще не разбираюсь в этом, нужно очень написать программу. Помогите))))) Вот что я пробовал

#include<iostream>
#include <stack>
#include <Windows.h>
using namespace std;

int main()
{
    setlocale(LC_ALL, "ukr");
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    stack <int> stack;
    int n = 0, i = 0;
    cout << "Введіть число n: ";
    cin >> n;
    while (n != 0) {
        stack.push(n % 10);
        n /= 10;
    }
    return 0;
}

Ответы (1 шт):

Автор решения: Стас

Вы начали правильно делать, но почему то не довели до конца. Запись элементов в стек у вас уже была, я добавил нахождение длины стека. Не совсем понял что значит:

представляет число, введенное в виде строчки символов, в виде стека

Поэтому просто сделал вывод элементов стека по отдельности. Добавил вычисление суммы

#include <iostream>
#include <fstream>
#include <stack>
using namespace std;

int main()
{
    setlocale(LC_ALL,"");
    stack <string> stack;
    unsigned long long y = 0;
    int sum = 0;
    string n, tmp;

    cout << "Введите число n: ";
    cin >> n;
    for (long long i = n.length()-1; i >= 0; i--){
        tmp = n[i];
        sum += stoi(tmp);
        stack.push(tmp);
    }

    cout << "Элементы из стека: ";
    for (unsigned long long i = 0; i < n.length(); i++){
        cout << stack.top();
        if (i != y - 1){
            cout << ", ";
        }
        stack.pop();
    }
    cout << endl << "Сумма элементов в стеке равна " << sum;
return 0;
}

UPD:

число n должно быть в виде строки

внутри нельзя преобразовывать

Я сделал ввод и добавление в стек в виде строки, но сумму элементов как строку найти нельзя. В c++ (как и в других языках программирования) числа складываются по правилам математики, а строки просто объединяют элементы. Например, если сложить строку "ab" + "c" получится "abc", а если "12" + "3" = "123". Так что в сложении нужно преобразовать строку в число.

→ Ссылка