gpt4 book ai didi

c - C 中的后缀评估

转载 作者:行者123 更新时间:2023-11-30 16:00:03 24 4
gpt4 key购买 nike

我正在学习 C 类(class),我们必须为经典的 Postfix 评估问题编写一个程序。现在,我已经在java中完成了这个问题,所以我知道我们必须使用堆栈将数字压入,然后在我们得到运算符时弹出它们,我想我对所有这些东西都很好。我遇到的问题是扫描 C 中的后缀表达式。在 java 中,它更容易,因为您可以使用 charAt 并且可以使用 parseInt 命令。但是,我不知道 C 中有任何类似的命令。因此,任何人都可以解释一种从以下形式的字符串中读取每个值的方法:

4 9 * 0 - =

其中 equals 是输入结束的信号。

任何帮助将不胜感激,并提前感谢您:)

最佳答案

假设您输入的是字符数组。

char input[] = "4 9 * 0 - =";

您可以通过访问每个单独的数组元素来访问单个字符

if (input[4] == '*') /* deal with star */;

或者您可以使用指针算术并从输入中的不同点进行解析(请记住 #include <stdio.h> 作为“sscanf”的原型(prototype))

if (sscanf(input + 2, "%d", &number) != 1) /* deal with error */;

或者,按照 Chris Lutz 在评论中的建议,使用 strtol (在正确的 #include <stdlib.h> 之后)

number = strtol(input + 2, &next, 10);
/* don't forget to check for errors! */
/* `next` now points to the character after the `long` at position 2 in the array */

关于c - C 中的后缀评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com