sscanf的使用

语法

int ssanf(const char *buffer, const char *format,[argument]...);

参数

  • buffer 存储的数据
  • format 控件字符串
  • argument 可选自变量

说明

第二个参数可以是一个或者多个 {%[*] [width] [{h | I | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}

这个参数说明暂时不清楚,先不用管它,稍后通过例子来说明

返回值

函数将返回成功赋值的字段个数;返回值不包括已读取但未值的字段个数。返回值为0表示在第一次读取之前到达字符串结尾,则返回EOF

sscanf("1 2 3","%d %d %d",buf1, buf2, buf3);
//成功调用返回值为3,即buf1,buf2,buf3均成功转换。
sscanf("1 2","%d %d %d",buf1, buf2, buf3);
//成功调用返回值为2,即只有buf1,buf2成功转换。
sscanf("hello, world", "%*s%s", buf);
//成功调用返回值为1,buf成功转换

使用实例

  1. 一般用法——将一字符串赋值给另一个字符串

    sscanf("123456","%s",buf);

  2. 取指定长度的字符串

    sscanf("1233456","%4s",buf);

  3. 取到指定字符为止的字符串

    sscanf("123456 abcdef","%[^ ]",buf)

    其中[^ ]^ 表示全集中除去空格的集合。是自定义的一种规则。

  4. 取到指定字符集为止的字符串

    sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);

    其中[^A-Z]表示全集中除去[A-Z]的集合,也就是说遇到不是该集合中的字符就停止读取。

  5. 取仅包含指定字符集的字符串

    sscanf("123456abcdeBCDEF","[1-9a-z]",buf);

    其中[1-9a-z]表示集合,用[1-9,a-z]表示也可以

  6. 给定一个字符串iios/12DDWDFF@122 ,获取/ 和 @ 之间的字符串,可以按照前面第3条规则,来读取。

    sscanf("iios/12DDWDFF@122 ","%*[^/]/%[^@]",buf);

    其中%*[^/]/%[^@]表示先读取到遇到 /为止的字符串(/并没有读入),然后因为有*所以不写入,中间加的一个/是为了读取缓冲区中的/,紧接着%[^@]读取遇到@的字符串,写入到buf里面。

  7. 分割字符串

    sscanf("hello, world","%*s%s",buf);

    最终写入buf的是world。因为这利用了%s读取遇到空格停止的特性。

最新文章

  1. activiti工作流的web流程设计器整合视频教程 SSM和独立部署
  2. Spring IOC/DI和AOP原理
  3. [Nginx] - PHP+FPM相关的配置
  4. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念
  5. Spark Streaming官方文档学习--上
  6. jquery的add()方法扩大选择返回
  7. ubuntu下的软件安装
  8. 基于.NET MVC的高性能IOC插件化架构(二)之插件加载原理
  9. [C++/CLI编程宝典][2]什么是C++/CLI语言
  10. Linux/Unix使用valgrind内存泄漏检测
  11. 第 1 章 Node.js 介绍
  12. POJ- Find a multiple -(抽屉原理)
  13. python实现微信接口(itchat)
  14. Eclipse 配置scala开发环境(windows)
  15. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil
  16. Canvas组件:画布,可以实现动画操作。
  17. 详述 IntelliJ IDEA 插件的安装及使用方法
  18. Android性能测试--垃圾回收频次统计的作用
  19. DAY65
  20. group by 字符串合并 有关问题

热门文章

  1. windows 修改鼠标滚轮自然滚动
  2. C#求圆的周长、面积、体积
  3. web前端篇:JavaScript基础篇(易懂小白上手快)-1
  4. JSON脱敏
  5. ZOJ 4019 Schrödinger's Knapsack (from The 18th Zhejiang University Programming Contest Sponsored by TuSimple)
  6. Python -3-列表和元组
  7. PostgreSQL-12-数据导入与导出
  8. scrapy框架中Download Middleware用法
  9. 转 open_cursors参数设置调优
  10. C#中MessageBox用法大全(附效果图)<转>