sscanf取固定长度的int_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);结果为: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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓盒子刷rec linux启动,ADB命令刷入recovery刷机

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼特点:需要手机获取Root权限,需掌握相关cmd命令和ADB命令;虽然命令不同, 但跟fastboot模式刷入方式类似 提示:①新手机未获取Root权限的在CMD命令行输入su后到手机上点击程…

python partial_Python--并行计算框架(pathos)

​应用python进行数据挖掘或计算时,往往需要遍历多种参数进行数据建模,而单次的建模或计算有时候非常耗时,这时候可以利用python的并行计算功能,加快计算速度。python能够应用并行计算的模块有多个multiprocessing、pathos等。其中…

linux mono apache2,如何利用Mono创建Apache+mono环境(2)

我决定用一种比较主流的linux系统来构建,运行Mono。一方面是因为我比较熟悉它,而另一方面的原因是我们内部的FTP服务器上已经有了一个DVD的iso格式的安装文件.没有一个下载点能下载完美的东西(注:我这里有疑问).你能猜到我选择的是什么吗? SuSE 9.2 Professional.我…

c# out关键字 vb_c# 关键字:ref 和 out

.NET Ref和Out关键字对于值类型。如果不使用ref /out则传递的只是这些值的COPY,使用了Ref和Out的效果就几乎和C中使用了指针变量一样。(传递的就是原值),它能够让你直接对原数进行操作,而不是对那个原数的Copy进行操作对于引用类型:如果不使用ref /out,因为传递的是…

endnote怎么改成中文版_毕业论文面对大量的参考文献标注,应该怎么办?(便捷整理的技巧和方法)...

毕业论文不同于一般的小论文,特别是硕士毕业论文或者博士毕业论文。一般的小论文就四五页,而硕士论文动辄五六十页,有的甚至七八十页,因此有些东西如果要人工的去修改,将是一件非常痛苦的事情,比如目录自动…

linux 多个cpu使用率,统计多台linux的CPU使用率

依赖于 paramiko 模块,python2 ,测试环境是在 rhel5,初学python,请大家指教;#!/usr/bin/python# -*- coding:utf8 -*-import paramikoimport refrom time import sleeplinux_info([ssoweb12,192.168.5.32],[ssoweb17,192.168.5.37…

typescript的类型描述_TypeScript类型声明书写详解

本文总结一下TypeScript类型声明的书写,很多时候写TypeScript不是问题,写类型就特别纠结,我总结下,我在使用TypeScript中遇到的问题。如果你遇到类型声明不会写的时候,多看看lodash的声明,因为lodash对数据…

怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现

今天是刘小爱自学Java的第143天。感谢你的观看,谢谢你。学习计划安排如下:商品分类业务的初步实现。数据模型的分析:数据表字段的设计,Java中对应的实体类,前端页面vue组件。业务模型的分析:请求路径是什么…

power iso linux启动盘,Power ISO Maker/ISO燃烧到磁盘工具 V3.0版

电源国际标准化组织是一个专业的工具,使国际标准化组织文件,并将其燃烧到磁盘。它可以快速地创建一个ISO文件从您的计算机,和ISO文件刻录到CD / DVD光盘。该软件还可以将你的光盘/光盘刻录到一个标准的文件,并烧毁它。你可以使用的…

js整体缩小网页_妙用JavaScript实现网页的任意缩放

现在网页上的字体是越来越小&#xff0c;别说是视力欠佳者就是好眼睛看久了也疼的难受&#xff0c;于是编写了下面这段小脚本&#xff0c;建议网页制作人能够加到网页代码的< head>中&#xff0c;以方便弱视人群放大浏览(仅适用于IE浏览器)&#xff01;代码如下&#xff…

scripts文件夹_常用Scripts整理

常用scripts整理--2020.05.13平时在进行数据处理时&#xff0c;经常会用到一些脚本文件&#xff0c;可以提高效率&#xff0c;我把自己常用到的进行整理总结&#xff0c;希望可以有所帮助1.批量修改图片名字#codingutf-8code by zzg 2020-04-07import os import re import sy…

linux vi如何输入井号,为什么我可以使用井号(#)来破坏vim用户功能命名规则

vimscript帮助文件在定义用户函数时说明&#xff1a;The function name must start with an uppercase letter, to avoidconfusion with builtin functions.这是强制执行的,除了我通过查看其他代码发现的以下情况."This should not work."But it does as long as the…

揭开netty神秘面纱_Netty 源码(ChannelHandler 死磕)

疯狂创客圈 经典图书 &#xff1a; 《Netty Zookeeper Redis 高并发实战》 面试必备 面试必备 面试必备疯狂创客圈 经典图书 &#xff1a; 《SpringCloud、Nginx高并发核心编程》 大厂必备 大厂必备 大厂必备无编程不创客&#xff0c;疯狂创客圈&#xff0c;一大…

c语言链表集合求并集用字母表示,c语言实现的链表集合的并集与交集

c语言,链表,集合求并集,交集#include#includetypedefintDatatype;//定义链表的节点typedefstructLNode{Datatype data;LNode *next;}LNode,*LinkList;boolInitLink(LinkList&L) //初始化链表{L (LinkList)malloc(sizeof(LNode));if(LNULL){return false;}L->nextNULL;re…

python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码

本篇文章小编给大家分享一下Python实现给下载文件显示进度条和下载时间代码&#xff0c;文章代码介绍的很详细&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家供大家参考&#xff0c;有需要的小伙伴们可以来看看。 该模块调用了三个库&#xff1a; 1.os 2.requests 3.…

c# 计算空格宽度像素_用pythonnet为计算机视觉做图像整理

中国的.NETer是国内技术的另类&#xff0c;当他们强调.NET也可以做啥啥时都会给别的技术藐视&#xff0c;毕竟主流都不用.NET。本人这几年其实花在.NET时间也少&#xff0c;都投入在Python/Go社区。可我还是有点工作外的寄托&#xff0c;就是让.NET也有一个很好的推广&#xff…

C语言笔试不好应该转专业吗,你认为大学里什么学科“难学”?过来人说出几门,考试难补考更难...

原标题&#xff1a;你认为大学里什么学科“难学”&#xff1f;过来人说出几门&#xff0c;考试难补考更难文/晓宁说教育2020届的大一新生们的第一个学期已经结束了&#xff0c;经过了一个学期的学习和生活&#xff0c;相信很多学生都对自己的大学有了一定的规划。尽管进入大学之…

mysql默认值无效_MySQL开发规范

一、基础规范1&#xff09; 使用InnoDB存储引擎2&#xff09; 数据库字符集使用UTF8&#xff0c;校对字符集使用utf8_general_ci3&#xff09; 所有表、字段都尽量添加注释4&#xff09; 库名、表名、字段名使用小写字母&#xff0c;禁止超过32个字符&#xff0c;须见名知意5&a…

set和map去重调用什么方法_你真的了解ES6的Set,WeakSet,Map和WeakMap吗?

之前在学习 ES6 的时候&#xff0c;看到 Set 和 Map&#xff0c;不知道其应用场景有哪些&#xff0c;只觉得很多时候会用在数组去重和数据存储&#xff0c;后来慢慢才领悟到 Set 是一种叫做集合的数据结构&#xff0c;Map 是一种叫做字典的数据结构。SetSet 本身是一个构造函数…

c语言整数反转用while函数,7.整数反转(LeetCode)——C语言

根据题目要求&#xff0c;必须是32位有符号整数&#xff0c;数值范围是[-2^31, 2^31-1]&#xff0c;换算出来就是-2147483648 —— 2147483647之间。将此范围内的数值反转可能会导致溢出&#xff0c;比如1234567893&#xff0c;反转之后为3987654321&#xff0c;已然超出了以上…