代码之家  ›  专栏  ›  技术社区  ›  RLH

sscanf求值表达式中的“[^<]”是什么意思?

  •  -1
  • RLH  · 技术社区  · 15 年前

    在谷歌上搜索“sscanf reference”或其他各种sscanf搜索词,可以找到大量关于C sscanf功能的参考资料。这些引用中的许多都包含可用于格式字符串的可用标记的解释。

    我正在查看另一个开发人员代码(他不再与我们公司合作),我看到在一个格式字符串中,他有多个标记,看起来像 %15[^<] . 我知道 %15 令牌的一部分是从引用字符串中提取15个字符,并将它们存储在字符串指针中。我找不到解释 [^<] 代币。

    我浏览了多个引用页,找不到对这样一个令牌的引用。也许我只是点击了错误的链接,但这是什么意思?此外,sscanf(以及其他带有格式字符串的cstdio函数)是否比传统文档概述的更健壮?如果是的话,是否有人有更详尽的文档链接?

    谢谢你们。

    3 回复  |  直到 11 年前
        1
  •  5
  •   paxdiablo    15 年前

    你应该检查的参考资料是 the ISO standard ,特别是章节 7.19.6.2 .

    对于您的特殊情况,它匹配的15个字符不是 < .

        2
  •  1
  •   unwind    15 年前

    我找到的第一个证明人( here )当然包括在内。在页面中搜索 [ .

    括号与正则表达式中的括号非常相似,用于表示匹配的字符组。如果第一个字符是^,则组被反转。所以 [^<] 将匹配除小于号之外的任何字符。

        3
  •  0
  •   onemasse    15 年前

    该标记匹配除“<”之外的所有内容。它可能是某种XML或HTML解析器吗?

    如果你在Windows以外的平台上,可以在scanf的手册页上找到。否则,我建议您安装cygwin。:)