【发布时间】:2016-03-02 00:56:21
【问题描述】:
我正在做一个项目,该项目要求我接受一个用反向波兰表示法编写的字符串并使用堆栈对其进行评估。我应该遍历字符串,如果元素是数字,我会继续遍历字符串,直到找到一个空格,然后使用 atoi 将字符串的该部分转换为整数。然后我将该整数压入堆栈。我的代码有效,但是,我不确定如何继续到空格后的下一个数字。这是我到目前为止的 for 循环:
for (unsigned int i = 0; i < a.size(); i++)
{
int b;
char c[a.size()];
while (isdigit(a[i]))
{
cout << a[i] << endl;
c[i] = a[i];
b = atoi(c);
i++;
}
cout << b << endl;
stack.push(b);
}
这总是将第一个整数压入堆栈,即使空格后还有更多整数。我需要添加什么才能在空格后继续将整数推入堆栈?感谢您的帮助。
【问题讨论】:
-
你能把所有的代码都贴出来吗?
标签: c++ arrays string class stack