字符串里的空格该不该跳

扫描器正在取 "hi there" 这个字符串,读到中间那个空格时应该【0】。

开始练习 →

哪一种切法错了却最难发现

三个写错的扫描器,最难被发现的是【0】的那一个。

开始练习 →

先删空白再切,会切出几个

有人图省事,先把源码里所有空白删光,再照正确规则切。输出这样切那段源码会得到几个 Token。 let rate = 12; let msg = "hi there"; total = rate >= 3; KEY

开始练习 →

跳空白放错地方,词数变了吗

另一个人把「跳空白」写进了字符串扫描的循环里面(其余完全正确)。输出两个数:这样切出的词数,以及和正确切法内容不同的词有几个,用 / 拼起来。 let rate = 12; let msg = "hi there"; t

开始练习 →

自己写:跳过空白

补全 skip_ws,从下标 i 开始跳过连续空白,返回第一个非空白字符的下标。三个起点各跳一次。

开始练习 →

自己写:把跳空白放对位置

补全 scan:每轮取词之前跳一次空白。输出两个数——切出的词数,以及字符串那个词一共几个字符(含两个引号),用 / 拼起来。 let rate = 12; let msg = "hi there"; total = r

开始练习 →

自己写:让字符串保住里面的空格

补全 read_string,逐字符取到收尾引号为止,中间的空白原样保留。输出三个数:第一个串的字符数、它里面的空格数、第二个串的字符数。

开始练习 →

取数字时什么时候该收手

扫描器取到数字 12,它停下来的判据是【0】。

开始练习 →

字符串的收手判据和数字有什么不同

取字符串和取数字,收手的判据不一样:字符串是【0】。

开始练习 →

12abc 应该怎么切

源码里出现了 12abc,按玩具语言的规则它会被切成【0】。

开始练习 →