sscanf的使用
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成功转换
使用实例
一般用法——将一字符串赋值给另一个字符串
sscanf("123456","%s",buf);取指定长度的字符串
sscanf("1233456","%4s",buf);取到指定字符为止的字符串
sscanf("123456 abcdef","%[^ ]",buf)其中
[^ ]中^表示全集中除去空格的集合。是自定义的一种规则。取到指定字符集为止的字符串
sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);其中
[^A-Z]表示全集中除去[A-Z]的集合,也就是说遇到不是该集合中的字符就停止读取。取仅包含指定字符集的字符串
sscanf("123456abcdeBCDEF","[1-9a-z]",buf);其中[1-9a-z]表示集合,用
[1-9,a-z]表示也可以给定一个字符串iios/12DDWDFF@122 ,获取/ 和 @ 之间的字符串,可以按照前面第3条规则,来读取。
sscanf("iios/12DDWDFF@122 ","%*[^/]/%[^@]",buf);其中
%*[^/]/%[^@]表示先读取到遇到/为止的字符串(/并没有读入),然后因为有*所以不写入,中间加的一个/是为了读取缓冲区中的/,紧接着%[^@]读取遇到@的字符串,写入到buf里面。分割字符串
sscanf("hello, world","%*s%s",buf);最终写入
buf的是world。因为这利用了%s读取遇到空格停止的特性。
sscanf的使用的更多相关文章
- C语言关于利用sscanf实现字符串相加减
#include<stdio.h>#include<string.h>void main(){ int a; int b; char str1[10] = "9999 ...
- sscanf提取字符串中的数据php
1.需求 理解sscanf的作用 2.例子 $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg&qu ...
- sscanf与正则表达式(转)
今天翻google reader的时候看到这样一篇文章,介绍的是sscanf的高级用法.直到今天我才知道sscanf是可以直接用正则表达式的,惭愧. 在msdn中sscanf的声明如下 int ssc ...
- C语言函数sscanf()的用法
从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...
- sscanf()函数的使用及其实例
资料引自: 传送门 sscanf函数原型: Int sscanf( const char * src, const char * format, ...); int scanf( const char ...
- C 语言sscanf
C语言以sscanf逗号作为分割符 ]={}; ]={}; ]={}; sscanf(],&buf_b[],&buf_b[]); printf("************** ...
- Babelfish(二分查找,字符串的处理略有难度,用sscanf输入)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 28581 Accepted: 12326 题目链接: ...
- (转)sscanf() - 从一个字符串中读进与指定格式相符的数据
(转)sscanf() - 从一个字符串中读进与指定格式相符的数据 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, stri ...
- sscanf函数
sscanf函数用法举例 #include <stdio.h> #include <string.h> #define N 512 int main() { char buf[ ...
- hdu 1036 (I/O routines, fgets, sscanf, %02d, rounding, atoi, strtol) 分类: hdoj 2015-06-16 19:37 32人阅读 评论(0) 收藏
thanks to http://stackoverflow.com/questions/2144459/using-scanf-to-accept-user-input and http://sta ...
随机推荐
- PJzhang:国内常用威胁情报搜索引擎说明
猫宁!!! 参考链接: https://www.freebuf.com/column/136763.html https://www.freebuf.com/sectool/163946.html 如 ...
- netty与MQ使用心得
最近在做分布式的系统,使用netty与mq进行远程RPC调用,现将心得经验总结一下. 我们公司的服务器在云端机房,在每一个店面有一个服务器,店面服务器外网无法访问. 我们的做法是店面服务器在启动时与云 ...
- 洛谷 P1067 多项式输出
P1067 多项式输出 模拟,很坑的那种 var i,n:longint; a:array[1..105] of integer; begin readln(n); for i:=1 to n+1 d ...
- web移动端滑动插件
1.slip只有6.3k可以说是非常小了,主要是通过css3里面的transform来改变的位置,控制的是父容器,使用也非常简单,具体信息移步slip.js.一个简单的demo如下 <!DOCT ...
- mysql设置自增长列的当前值
-- 查看表中自增长列的当前值 SELECT Auto_increment FROM information_schema.`TABLES` WHERE Table_Schema='rhr' AND ...
- zTree树插件动态加载
需求: 由于项目中家谱图数据量超大,而一般加载方式是通过,页面加载时 zTree.init方法进行数据加载,将所有数据一次性加载到页面中.而在项目中家谱级别又非常广而深,成千上万级,因此一次加载,完全 ...
- JAVA吃货联盟项目。
1基础通过数组.选择结构.循环等实 现吃货联盟订餐系统. 1.我要订餐: 2.查看餐袋: 3.签收订单: 4.删除订单: 5.我要点赞: 6.退出系统: public class Doy001 { p ...
- 60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)
今天开始我将写nodejs框架egg.js, react 实现的增删改查,文件上传等常用的b/s场景,这个将分3部分来写. 会让你在60分钟内快速 入口并应用~ 你应该用es6, node,或是ph ...
- Java .class文件的反编译与反汇编
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10840818.html 一:反编译 通常用于第三方JAR包的逆向工程. 一般我们拿到的jar包都是经过编译后 ...
- 解决Git在更新项目时报凭证错误(Authentication failed)
报此错误,大概率原因是用户名和密码弄错了,我用的阿里云,在网上找了半天发现Git远程仓库用的用户名和密码不是阿里云登陆用的账户密码,必须另外设置: 链接:code.aliyun.com/profile ...