将字符保存到字符串类型到堆栈?

时间:2017-10-08 22:48:06

标签: c++

我定义了一个堆栈,它只接受字符串。 现在我的目标是读取每个字符,如果它是像+这样的运算符,我需要将其推送到堆栈。

当我按下它时,它将保存ACS的calII +为43

如何将char保存到字符串?

我试图使用STL

stack<string> s1;
    string post;
    if (exp[0] == '+')
    {
        s1.push(to_string(exp[0]));
    }
    cout<<s1.top();

我需要保存+,最终我正在编写代码将infox转换为postfix表达式。我的输入将使用运算符编号

1 个答案:

答案 0 :(得分:1)

to_string function只有将数值转换为字符串的重载,这就是你得到字符串“43”的原因。您可以将代码更改为:

s1.push("+");

使用字符串的from c-string构造函数隐式转换为const char*string。或者,要从单个char转换为string,最简单的方法是使用fill constructor,在这种情况下,您可以这样写:

s1.push(string(1, exp[0]));