函数原型: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);结果为:1234562. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。sscanf("123456 ", "%4s", buf);printf("%s\n", buf);结果为:12343. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。sscanf("123456 abcdedf", "%[^ ]", buf);printf("%s\n", buf);结果为:1234564. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);printf("%s\n", buf);结果为:123456abcdedf5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);printf("%s\n", buf);结果为:123456abcdedf6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);printf("%s\n", buf);结果为:12DDWDFF7、给定一个字符串““hello, world”,仅保留world。(注意:“,”之后有一空格)sscanf(“hello, world”, "%*s%s", buf);printf("%s\n", buf);结果为:world%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了如果没有空格则结果为NULL。sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.//-------------------------------------------------------sscanf,表示从字符串中格式化输入上面表示从str中,输入数字给x,就是32700久以前,我以为c没有自己的split string函数,后来我发现了sscanf;一直以来,我以为sscanf只能以空格来界定字符串,现在我发现我错了。sscanf是一个运行时函数,原形很简单:int sscanf(const char *buffer,const char *format [,argument ] ...);它强大的功能体现在对format的支持上。我以前用它来分隔类似这样的字符串2006:03:18:int a, b, c;sscanf("2006:03:18", "%d:%d:%d", a, b, c);以及2006:03:18 - 2006:04:18:char sztime1[16] = "", sztime2[16] = "";sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2);但是后来,我需要处理2006:03:18-2006:04:18仅仅是取消了‘-’两边的空格,却打破了%s对字符串的界定。我需要重新设计一个函数来处理这样的情况?这并不复杂,但是,为了使所有的代码都有统一的风格,我需要改动很多地方,把已有的sscanf替换成我自己的分割函数。我以为我肯定需要这样做,并伴随着对sscanf的强烈不满而入睡;一觉醒来,发现其实不必。format-type中有%[]这样的type field。如果读取的字符串,不是以空格来分隔的话,就可以使用%[]。%[]类似于一个正则表达式。[a-z]表示读取a-z的所有字符,[^a-z]表示读取除a-z以外的所有字符。所以那个问题也就迎刃而解了:sscanf("2006:03:18 - 2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2);

sscanf取固定长度的int_sscanf函数用法详解-阿里云开发者社区相关推荐

  1. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...

    网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...

  2. 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  3. EXCEL公式VLOOKUP函数用法详解

    EXCEL公式VLOOKUP函数用法详解 示例下载 VLOOKUP函数 在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值. 这里所说的"数组" ...

  4. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  5. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  6. python中import re_Python3中正则模块re.compile、re.match及re.search函数用法详解

    本文实例讲述了Python3中正则模块re.compile.re.match及re.search函数用法.分享给大家供大家参考,具体如下: re模块 re.compile.re.match. re.s ...

  7. python lambda函数-Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...

  8. C++ copy()函数用法详解(深入了解,一文学会)

    C++ 算法 copy() 函数用于将容器 [first,last] 的所有元素从结果开始复制到不同的容器中. 本文介绍了copy.strcpy.strncpy.memcpy.copy_n.copy_ ...

  9. qsort函数用法详解

    qsort()函数用法详解 limabean 本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利. 1.qsort函数简介 排序是程序员经常碰到的问题, ...

最新文章

  1. Grafana 7.0 发布:改进的界面、新的插件平台和可视化等
  2. Linux内存管理 - 页表的映射过程初步了解
  3. 什么是TypeScript的字符串索引签名
  4. 全国计算机等级考试题库二级C操作题100套(第85套)
  5. python语言画心_python语言还是java如何用python画爱心
  6. onu光功率多少是正常_电信宽带升级为200M光纤,为什么网速没有提升多少?
  7. 创新也要懂“规矩” 协同软件将走向何方
  8. Http请求返回最外层的模型
  9. android mvp模式例子_[Android] MVP设计模式及实例
  10. 利用JavaScript实现京东自动叠蛋糕+淘宝自动领喵币,叠列车+618全民购物
  11. Arduino 电机测速
  12. 谷歌浏览器html5视频播放器,谷歌浏览器-HTML5视频不会循环播放
  13. 物联网技术实现农业自动化
  14. [升级失效]超星学术视频下载分析
  15. 音色、音高、音强、音长
  16. unturend服务器修改背包,未转变者如何修改背包容量 | 手游网游页游攻略大全
  17. Python pass 用法
  18. XTU Oj 128
  19. --scrapy爬虫--
  20. Android轻量级APM性能监测方案

热门文章

  1. 惠普打印机136w硒鼓芯片怎么清零_关于惠普彩激升级后无法识别硒鼓的处理方案...
  2. 海上瓶子下有东西吗_洗衣液瓶子我从来不扔,瓶身这样剪几刀,解决了很多家庭的大烦恼...
  3. 使用pymc3可能遇到的问题及解决方法
  4. Python计算信息熵
  5. 数字图像处理--3.图像增强
  6. Java加密与解密的艺术~安全协议~单向认证服务
  7. 将文件内含有的特殊字符还原
  8. cifs挂载 mount ubuntu_centos或者Ubuntu挂载windows10文件夹
  9. 我的原创,思考写作时间在1小时以上,希望读者有真正收获的博客
  10. ubuntu 虚拟机 串口 socket_上篇 | 虚拟机Ubuntu向开发板AMR传送文件