工作中遇到的C中Sscanf 函数的用法详解

1 首先,看到sscanf时,会想到scanf,唯一不同的是前者是以固定的字符串为输入源;后者是以屏幕为输入源。

2 sscanf函数的定义为 int  sscanf(const char *str,const char * format,.......);函数说明,将参数str的字符串根据format字符串来格式化数据,转化后的结果存在于对应得函数参数内。  返回值为参数数目,返回0表示失败。

3 sscanf函数和正则式结合使用。想

4举例使用:

(1)sscanf("waascfg-aaa","%5s",str); 取指定长度的字符串,str="waasc”

(2)sscanf("waascfg-aaa","%[^-]",str);取“-”之前的字符串,str=“waascfg”

(3)sscanf("waascfg-aaa$","%[^-]",str);取“-”之后和“$”之间的字符串,str=“aaa”

(4)sscanf("waascfg, aaa","%[^ ]",str);取到指定字符为止的字符串,取遇到空格为止的字符串,str=“waascfg”

(5)sscanf("waascfg, aaa","%*s%s",str); 其中 %*s 表示第一个被匹配到的字符串waascfg被忽略掉了,取出空格后的字符串,既str=“aaa”。如果没有中间的空格,会返回空。

关于正则表达式: 1> %[..]当字符属于方括号里表达式表示的字符集继续读取,否则停止;方括号里时正则表示式,^是“忽略........”的意思。

2> %*[..]直接忽略方括号里字符集并继续读取

 

你可能感兴趣的:(字符串操作,C/C++)