Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

6.3.4 使用单词

现在,或许我们能够实现完整的计算器程序了。然而,可能前面的设计只有一小部分有用。在计算器程序中如何使用Token?我们可以将输入读到一个Token的vector中:

接下来,我们可以先读取一个表达式,然后对其进行运算。例如,对于11*12可以得到:

我们可以从中找到乘法符号及其操作数,因此非常容易地执行乘法运算,因为数字11和12是作为数字而不是字符串存储的。

接下来看一个更复杂的表达式,如1+2*3,则tok包含5个Token:

通过一个简单的循环就可以找到乘法操作符:

但接下来如何处理乘积d呢?如何确定子表达式的计算顺序呢?因为加法运算符在乘法运算符之前,所以不能直接按照从左到右的顺序计算。我们可以试试从右到左计算!但这么做对1+2*3是正确的,对1*2+3又是错误的了。更糟的是1+2*3+4,必须“由内至外”计算:1+(2*3)+4。又出现了新的问题,我们如何处理括号呢,最终我们到底应该如何做呢?似乎是走进了死胡同。我们必须后退一步,先停止程序的编写,重新考虑如何读取和分析输入表达式,并计算它的值。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252