复杂的scanf转换字符

时间:2012-08-17 17:43:47

标签: c scanf

我在C书中找到了这样一个scanf的例子(这次不是K& R):

scanf(" %[-' A-Za-z]s",&variable);

有人可以向我提供它接受的信息吗? 我没有找到任何关于使用'a'或'z'作为转换字符的信息

1 个答案:

答案 0 :(得分:4)

从标准(C11,§7.19.6.2/ 12):

  

]匹配来自一组预期字符的非空字符序列

这意味着您的格式需要一系列字符-,空格,A,...,Za,...,{ {1}}。

z转换说明符包含两个特殊字符:[ 反转匹配集,以及<之间的连字符(%[^... / em>两个字符表示范围,与-A-Z中使用的范围相同。