我定义了一个堆栈,它只接受字符串。 现在我的目标是读取每个字符,如果它是像+这样的运算符,我需要将其推送到堆栈。
当我按下它时,它将保存ACS的calII +为43
如何将char保存到字符串?
我试图使用STL
stack<string> s1;
string post;
if (exp[0] == '+')
{
s1.push(to_string(exp[0]));
}
cout<<s1.top();
我需要保存+,最终我正在编写代码将infox转换为postfix表达式。我的输入将使用运算符编号
答案 0 :(得分:1)
to_string
function只有将数值转换为字符串的重载,这就是你得到字符串“43”的原因。您可以将代码更改为:
s1.push("+");
使用字符串的from c-string构造函数隐式转换为const char*
到string
。或者,要从单个char
转换为string
,最简单的方法是使用fill constructor,在这种情况下,您可以这样写:
s1.push(string(1, exp[0]));