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版)

11.7 使用非标准分隔符

本节提供一个接近实际的例子,它使用iostream库解决一个真实问题。当我们读入字符串时,是以空白符作为默认分隔符的。不幸的是,istream没有提供自定义分隔符的功能,也不能直接改变>>读入字符串的方式。于是,如果我们需要定义其他空白符,应该怎么做呢?回顾4.6.3节中的例子,我们读入“单词”并进行比较。那些单词都是以空白符分隔的,因此,如果我们输入

我们会得到这些“单词”:

我们在字典中是找不到“planned,”和“arrived;”这些字符串的,它们并不是单词。它们实际上是由单词加上毫无关系的、分散注意力的标点字符构成的。而在大多数场合下,我们是应该将标点与空白符等同对待的。那么该如何去掉这些标点呢?我们可以逐个处理字符,将标点字符删除或者转换为空白符,随后再从“清理干净的”输入中读取数据:

同样是前面给出的输入,以下代码会得到我们想要的单词:

不幸的是,这段代码有些乱,而且是专用而非通用的。如果对另外一个问题,标点集发生变化,我们又该怎么办呢?下面我们提出一种更为通用、更为有效的从输入流中删除不需要字符的方法。这种方法应该是怎样的呢?我们希望使用这一功能的用户程序是什么样的呢?考虑下面的代码: ...

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