_stscanf_s (sscanf)正则表达式

 
 
{%[*] [width] [{h | l | I64 | L}]type  |  ' ' |  '\t' | '\n' | 非%符号},
注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
width:宽度,一般可以忽略,用法如:
const  char sourceStr[] = "hello, world";
char buf[10] = {0};
sscanf(sourceStr, "%5s", buf);   //%5s,只取5个字符
cout << buf<< endl;
结果为:hello
{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。
type :这就很多了,就是%s,%d之类。
 
特别的:
%*[width] [{h | l | I64 | L}]type  表示满足该条件的被过滤掉,不会向目标参数中写入值。如:
const  char sourceStr[] = "hello, world";
char buf[10] = {0};
sscanf(sourceStr, "%*s%s", buf);   //%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了
cout << buf<< endl;
结果为:world
支持集合操作:
         %[a-z]  表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
         %[aB']  匹配a、B、'中一员,贪婪性
         %[^a]    匹配非a的任意字符,贪婪性
 
%*c表示忽略连续多个字符
 
%[^ ] 取遇到空格为止字符串
 
%[^A-Z] 取遇到大写字母为止的字符串
 
%[1-9a-z] 取仅包含1到9和小写字母的字符串
 
看看周星星同学的例子
const char* s = "iios/12DDWDFF@122";
sscanf( s, "%*[^/]/%[^@]", buf );
结果为:12DDWDFF

最新文章

  1. java常用设计模式
  2. 【2016-11-7】【坚持学习】【Day22】【Oracle 分页查询】
  3. 详解.Net消息队列(MSMQ)应用
  4. ubuntu14.04安装bodhi桌面系统后,unity启动界面改变,如何还原
  5. java编程思想-java 异常使用指南
  6. iBeacon
  7. Ubuntu11.10打开XDMCP,使用XManager远程管理
  8. session的存储方式和配置
  9. java中部分知识点的验证实现
  10. Android一个包含表格的图标库
  11. Linux知识体系之磁盘与档案系统管理
  12. eclipse下svn的使用
  13. bzoj 1257: [CQOI2007]余数之和 (数学+分块)
  14. 0001-20180421-自动化第一章-python基础学习笔记
  15. extern的使用详解(多文件编程)——C语言
  16. centos7 下安装配置python3.6
  17. Mac Terminal
  18. 作业6--四则运算APP之Sprint计划
  19. HDU - 1754 A - I Hate It 线段树
  20. acceptorThreadCount

热门文章

  1. Python 自学笔记(二)
  2. (main)贝叶斯统计 | 贝叶斯定理 | 贝叶斯推断 | 贝叶斯线性回归 | Bayes&#39; Theorem
  3. CCF认证历年试题
  4. CImage中m_hBitmap!=0弹框报错
  5. 十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!
  6. springboot之activemq安装与实践
  7. 007-log-log4j2、slf4j+log4j2
  8. Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法
  9. swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
  10. OpenCV.问题&amp;解决