sscanf函数用法详解及演示代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sscanf函数用法详解及演示代码

Sscanf函数用法详解 名称:   sscanf - 从一个字符串中读进与指定格式相符的数据.   函数原型:   Int sscanf string str, string fmt, mixed var1, mixed var2 ... ;   int scanf const char *format [,argument]... ;   说明:   sscanf与scanf类似,都是用于输入的,只是后者以 stdin 为输入源,前者以固定字符串为输入源。   其中的format可以是一个或多个 %[*] [width] [ h | l | I64 | L ]type | | \t | \n | 非%符号 注:   1、 * 亦可用于格式中, 即 %*d 和 %*s 加了星号 * 表示跳过此数据不读入. 也就是不把此数据读入参数中 2、 a|b|c 表示a,b,c中选一,[d],表示可以有d也可以没有d。   3、width表示读取宽度。   4、 h | l | I64 | L :参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size double例外 ,l64表示8字节size。   5、type :这就很多了,就是%s,%d之类。   6、特别的:%*[width] [ h | l | I64 | L ]type 表示满足该条件的被过滤掉,不会向目标参数中写入值   支持集合操作:   %[a-z] 表示匹配a到z中任意字符,贪婪性 尽可能多的匹配 %[aB] 匹配a、B、中一员,贪婪性   %[^a] 匹配非a的任意字符,贪婪性 例子:   1. 常见用法。   char buf[512] ;   sscanf 123456 , %s, buf ;   printf %s\n, buf ;   结果为:123456   2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。   sscanf 123456 , %4s, buf ;   printf %s\n, buf ;   结果为:1234   3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。   sscanf 123456 abcdedf, %[^ ], buf ;   printf %s\n, buf ;   结果为:123456   4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。   sscanf 123456abcdedfBCDEF, %[1-9a-z], buf ;   printf %s\n, buf ;   结果为:123456abcdedf   5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。   sscanf 123456abcdedfBCDEF, %[^A-Z], buf ;   printf %s\n, buf ;   结果为:123456abcdedf   6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 iios/过滤掉,再将非@的一串内容送到buf中   sscanf iios/12DDWDFF@122, %*[^/]/%[^@], buf ;   printf %s\n, buf ;   结果为:12DDWDFF   7、给定一个字符串““hello, world”,仅保留world。(注意:“,”之后有一空格)   sscanf “hello, world”, %*s%s, buf ;   printf %s\n, buf ;   结果为:world   %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了   如果没有空格则结果为NULL。   sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.   // using namespace std; int main char str[100],a[100]; while gets a cout endl 注:只要遇到不符合条件的,即终止字符提取! endl; sscanf a,%[^\n],str ; cout 直接复制(遇回车结束) : str endl; sscanf a,%s,str ; cout 直接复制单个串(遇空格结束) : str endl; memset str,0,sizeof str ; sscanf a,%4

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档