我正在学习sscanf
并遇到如下格式字符串:
sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c);
我理解部分%[^:]
表示扫描直到遇到':'
并将其分配给a
。
格式字符串中的:
表示匹配':'
。
但是
我知道%*d
意味着在遇到号码之前禁止分配。但是%[^*=]
,*
中的[]
是什么意思?
%*[*=]
,是否会在遇到=
之前抑制扫描。如果是这样,它是否等同于%[^=]
?
答案 0 :(得分:1)
方括号内的*
只是一个文字*。
对sscanf
的此调用将匹配第二个指令中的*或=所有内容,并将结果分配给b
。然后第三个指令将获取所有*或=字符,并丢弃结果。