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

时间:2010-11-24 14:52:22

标签: c scanf

谷歌搜索“sscanf参考”或其他各种sscanf搜索术语带来了大量有关C sscanf功能的可用参考。其中许多引用包含可用于格式字符串的可用令牌的解释。

我正在查看其他开发人员代码(不再与我们公司合作),我在格式字符串中看到他有多个令牌,看起来像%15[^<]。我知道令牌的%15部分从参考字符串中取出15个字符并将它们存储在字符串指针中。我找不到的是解释[^<]令牌功能的文档。

我查看了多个参考页面,但找不到像这样的令牌的引用。也许我只是点击错误的链接,但这是什么意思?此外,sscanf(以及其他带有格式字符串的cstdio函数)是否比传统文档概述的更强大?如果是这样,是否有人有更全面的文档链接?

谢谢你们。

3 个答案:

答案 0 :(得分:5)

您应该检查的引用是the ISO standard,尤其是7.19.6.2部分。

对于您的特定情况,它匹配十五个不是<的字符。

答案 1 :(得分:1)

我找到的第一个引用(here)确实包含它。在页面中搜索[

与正则表达式一样,使用括号来表示匹配的字符组。如果第一个字符是^,则该组被反转。因此[^<]将匹配除小于符号之外的任何字符。

答案 2 :(得分:0)

该令牌匹配除“&lt;”之外的所有内容。它可能是某种XML或HTML解析器吗?

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