【发布时间】:2020-09-10 06:35:33
【问题描述】:
30 天代码挑战问题第 2 天第 1 天黑客排名问题。
能否解释一下在字符串输入期间(%*[\n] %[^\n]) 的使用?
【问题讨论】:
-
man page 告诉你什么?
-
在单个格式字符串中,第一个术语是一种冗长的方式,可以更简洁地完成单个空格的操作。它跳过换行符,空格跳过空格(空格、制表符、换行符)。
30 天代码挑战问题第 2 天第 1 天黑客排名问题。
能否解释一下在字符串输入期间(%*[\n] %[^\n]) 的使用?
【问题讨论】:
%*[\n] 表示“接受一个或多个换行符但不存储它们”
] 和 % 之间的空格表示“忽略以下所有空格”
%[^\n] 表示“接受并存储任何字符串,但不包括换行符”
例子:
字符输入
'\n' ' ' ' ' '\t' '\n' '\n' 'a' 'b' 'c' '\n'
\--/ \--------------------/ \---------/
| | |
Accepted by: 1. 2. 3.
因此存储的输入将是“abc”,scanf 将返回 1 以告知它匹配 1 个元素。
请注意,以换行符开头的输入 not 将导致零匹配元素。
【讨论】: