C语言中sscanf函数的简明教程
函数定义
int sscanf(const char *str, const char * format, ...);
函数说明
sscanf()
定义于头文件stdio.h
。sscanf()
会将参数str
的字符串根据参数format
字符串来转换并格式化数据。格式转换形式请参考scanf()
。转换后的结果存于对应的参数内。
返回值
成功则返回参数数目,失败则返回-1
(也即EOF
)。
参数中format的说明
format中可以包含一个或多个{%[*][width][length]specifier|' '|'\t'|'\n'|所有非%符号}
注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
- width:宽度,忽略则为贪婪模式
- length:对specifier进行修饰,指定存储类型,可选值有
hh
、h
、l
、ll
、j
、z
、t
、L
- specifier:参考scanf中的specifier
length
和specifier
组合所指定的存储类型表:
注:黄色行表示实现标准为C99
支持集合操作:
- %[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
- %[aB’] 匹配a、B、'中一员,贪婪性
- %[^a] 匹配非a的任意字符,贪婪性
- %*[^=] 匹配=之前的字符串并跳过
注:集合操作的存储格式只能为char*或wchar_t*,即不能用%[0-9]接收并存储为int*</