sscanf用法简介

1.定义函数

int sscanf (const char *str,const char * format,........);

函数说明

sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

返回值

成功则返回参数数目,失败则返回-1,错误原因存于errno中。

范例

#include<stdio.h>

main()

{

int i;

unsigned int j;

char input[]="10 0x1b aaaaa bbbbbbbb 123";

char s[5];

int ff;

sscanf(input,"%d %x %4[a-z] %*s %d", &i,&j,s,&ff);

printf("%d %d %s %d\n", i,j,s,ff);}

执行

10 27 aaaa

2.支持集合操作:

%[a-z] 表示匹配az中任意字符,贪婪性(尽可能多的匹配),遇到非[a-z]范围内字符即停止读入。

%[aB'] 匹配aB'中一员,贪婪性,同上。

%[^a] 匹配非a的任意字符,并且停止读入,贪婪性

3.示例1.1

取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。

sscanf("123456 ", "%4s", buf);

printf("%s\n", buf);

结果为:1234

sscanf("123456 abcdedf", "%[^ ]", buf);

printf("%s\n", buf);

结果为:123456

sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);

printf("%s\n", buf);

结果为:12DDWDFF

原文:

http://baike.baidu.com/view/1364018.htm

原文地址:https://www.cnblogs.com/mydomain/p/2775825.html