sscanf的用法

sscanf的用法

ID:40570796

大小:39.50 KB

页数:3页

时间:2019-08-04

sscanf的用法_第1页
sscanf的用法_第2页
sscanf的用法_第3页
资源描述:

《sscanf的用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、名称:sscanf()- 从一个字符串中读进与指定格式相符的数据. 函数原型:Int  sscanf(stringstr,stringfmt,mixedvar1,mixedvar2...);int  scanf(constchar*format[,argument]...); 说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。其中的format可以是一个或多个 {%[*][width][{h

2、l

3、I64

4、L}]type

5、‘‘

6、‘t‘

7、‘‘

8、 非%符号} 注:1、 * 亦可用于格式中,(即 %*d 和 %*s) 加了

9、星号 (*) 表示跳过此数据不读入.(也就是不把此数据读入参数中) 2、{a

10、b

11、c}表示a,b,c中选一,[d],表示可以有d也可以没有d。 3、width表示读取宽度。 4、{h

12、l

13、I64

14、L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。5、type:这就很多了,就是%s,%d之类。 6、特别的:%*[width][{h

15、l

16、I64

17、L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值  支持集合操作:     %[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配) 

18、     %[aB‘] 匹配a、B、‘中一员,贪婪性     %[^a] 匹配非a的任意字符,贪婪性   例子: 1. 常见用法。   char buf[512]={0};    sscanf("123456", "%s", buf);printf("%s", buf); 结果为:123456  2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。    sscanf("123456", "%4s", buf);printf("%s", buf); 结果为:1234  3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。    sscanf("123

19、456abcdedf", "%[^]", buf);printf("%s", buf); 结果为:123456  4.  取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。    sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);printf("%s", buf); 结果为:123456abcdedf  5.  取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。    sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);printf("%s", buf

20、); 结果为:123456abcdedf    6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非‘@‘的一串内容送到buf中sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);printf("%s", buf); 结果为:12DDWDFF  7、给定一个字符串““hello,world”,仅保留world。(注意:“,”之后有一空格)sscanf(“hello,world”,  "%*s%s",  buf);  printf("%s", buf);  结果为:w

21、orld %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了 如果没有空格则结果为NULL。sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。