【问题标题】:Can Some Explain use of (%*[\n] %[^\n]) During String Input [closed]可以解释一下字符串输入期间 (%*[\n] %[^\n]) 的使用 [关闭]
【发布时间】:2020-09-10 06:35:33
【问题描述】:

30 天代码挑战问题第 2 天第 1 天黑客排名问题。

能否解释一下在字符串输入期间(%*[\n] %[^\n]) 的使用?

【问题讨论】:

  • man page 告诉你什么?
  • 在单个格式字符串中,第一个术语是一种冗长的方式,可以更简洁地完成单个空格的操作。它跳过换行符,空格跳过空格(空格、制表符、换行符)。

标签: c string scanf


【解决方案1】:
  1. %*[\n] 表示“接受一个或多个换行符但不存储它们”

  2. ]% 之间的空格表示“忽略以下所有空格”

  3. %[^\n] 表示“接受并存储任何字符串,但不包括换行符”

例子:

字符输入

              '\n' ' ' ' ' '\t' '\n' '\n' 'a' 'b' 'c' '\n'
              \--/ \--------------------/ \---------/
               |              |                |
Accepted by:   1.             2.               3.

因此存储的输入将是“abc”,scanf 将返回 1 以告知它匹配 1 个元素。

请注意,以换行符开头的输入 not 将导致零匹配元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 2023-02-15
    相关资源
    最近更新 更多