C语言中sscanf函数的简明教程

字符串处理函数:sscanf 的用法 一直对于一些日期字符串中数字的提取比较头疼,现看到 sscanf 对于字符串中的内容提取较方便,学习记录如下。方便以后查询。 阅读详情
AI摘要

C语言中的sscanf函数用于从字符串中读取格式化的数据。它根据format字符串解析输入,并将结果存储在对应的参数中。返回值表示成功转换的参数数量。format字符串可以包含宽度、长度修饰符和各种specifier,例如%,%[a-z]等。通过使用不同的specifier和集合操作,可以灵活地处理字符串中的数据。示例包括贪婪模式、长度限制、指定类型和接收并忽略特定字符。

C语言中sscanf函数的简明教程

函数定义

int sscanf(const char *str, const char * format, ...);

函数说明

sscanf()定义于头文件stdio.h。sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

返回值

成功则返回参数数目,失败则返回-1(也即EOF)。

参数中format的说明

format中可以包含一个或多个{%[*][width][length]specifier|' '|'\t'|'\n'|所有非%符号}

注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。

  • width:宽度,忽略则为贪婪模式
  • length:对specifier进行修饰,指定存储类型,可选值有hh、h、l、ll、j、z、t、L
  • specifier:参考scanf中的specifier

length和specifier组合所指定的存储类型表:

存储类型表

注:黄色行表示实现标准为C99

支持集合操作:

  • %[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
  • %[aB’] 匹配a、B、'中一员,贪婪性
  • %[^a] 匹配非a的任意字符,贪婪性
  • %*[^=] 匹配=之前的字符串并跳过

注:集合操作的存储格式只能为char*或wchar_t*,即不能用%[0-9]接收并存储为int*

例子

  • 贪婪模式(省略width)
char result[100];
sscanf("helloworld", "%s", result);
printf("%s", result);  // helloworld
  • 限定长度
char result[100];
sscanf("helloworld", "%5s", result);  // 限定长度为5的字符串
printf("%s", result);  // hello
  • 指定length和specifier
long long result;
sscanf("8888888888888", "%lld", &result);  // 存储类型为long long int
printf("%lld", result);  // 8888888888888
  • 接收但忽略部分字符
char result[100];
sscanf("helloworld", "%*5s %s", result);  // %*5s表示接收但忽略5个字符,%s表示接收剩下的字符,format中的空格会被忽略
printf("%s", result);  // world
  • 集合操作
char result[100];
sscanf("abcdefg8888abc", "%[abc]", result);
// 每个字符只能是a、b、c中的一个,一旦不满足则接收(忽略后面的所有字符,即使可能会再次满足条件)
printf("%s", result);  // abc
  • 指定长度的集合操作
char result[100];
sscanf("ab12cdefg", "%5[a-z0-9]", result);  // 接收长度为5并且由a到z、0到9字符组成的字符串
printf("%s", result);  // ab12c
  • 排除部分字符
char result[100];
sscanf("abcdefg", "%[^d-f]", result);  // 接收由非d、e、f字符组成的字符串
printf("%s", result);  // abc
  • 同时接收多个变量
char name[100];
int age;
sscanf("name=zhangsan;age=24", "%*[^=] = %[^;] ; age=%d", name, &age);  // 分别接收name和age并按指定格式存储
printf("%s\n", name);  // zhangsan
printf("%d\n", age);  // 24
C语言全网最全sscanf函数用法,没有的评论区提,随时更新 本教程分初级、进阶、实战用例,有基础的直接跳到后面吧。本文主要拿AT指令做例子。写得不好别喷,合理的要求可以提出来我尽力改。本教程应该足以面对大部分的解析。最后部分主要是实战为主。各位有想解析的字符串可以放到评论区,比较经典的我会放到文章里。 阅读详情

相关推荐

Bellhop水声信道模型的仿真

Bellhop是一种基于射线追踪的水声信道模型,广泛用于预测水下环境中的声压场。它通过模拟声波在水中的传播路径,计算声场分布,适用于复杂的水下通信场景。

yt94832的博客 1315

sscanf函数详细介绍及使用方法解析

sscanf函数详细介绍及使用方法解析

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 3万+

使用Eggjs做服务端获取微信小程序云开发数据库的access_token

最近自己想写了一个微信小程序,恰巧里面有个云开发,恰巧里面有个数据库,那懒人的我,就直接用云开发里面的数据库了,做测试或者正式也好,对于刚开始来说,免费的配额是够用的。 后来想到在小程序云开发上面的数据怎么看才方便?刚好微信小程序有一个服务端API,那就方便很多了,那就直接敲个服务端来获取云开发上数据库的数据出来到自己的后台上面,那以后管理起来也方便很多。 看了一下服务端api之后,发现有三个重要...

kalenE992的博客 1705

sscanf函数使用详解

一、描述 sscanf通常被用来解析并转换字符串,其格式定义灵活多变,可以实现很强大的字符串解析功能。 sscanf的原型 #include <stdio.h> int sscanf(const char *str, const char *format, ...); str:待解析的字符串; format:字符串格式描述; 其后是一序列数目不定的指针参数,存储解析后的数据. 二、示例用法 1. sscanf的基本用法 整形数转换 int year, month, day

轮子工厂 12万+

告别虚拟机!在WSL2的Ubuntu里5分钟跑通LVGL v9.2图形界面(附SDL2配置避坑)

本文详细介绍了如何在WSL2的Ubuntu子系统中快速配置LVGL v9.2图形库的SDL2模拟环境,帮助嵌入式开发者在5分钟内跑通第一个图形界面示例。通过WSL2和VSCode的远程开发插件,实现Windows系统下无缝使用Linux工具链,大幅提升开发效率。

weixin_28736335的博客 425

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

AI赋能,使用DeepSeek 高效制作PPT实战详解

congge 1万+

【C语言 | 字符串处理】sscanf 详细介绍、使用说明以及使用例子源码

👉本文详细介绍了C语言解析字符串常用的sscanf函数,并给出了使用该函数解析字符串的例子。

wkd_007的博客 1万+

LLM Wiki 的完整输入体系:LLM Wiki极简实战

LLM Wiki 的输入分为**四大类**,覆盖从"原始知识注入"到"系统行为控制"的全流程,所有输入都遵循"**原始资料不可变,规则可迭代,人类反馈闭环**"的核心原则。

ZhangJiqun&191cm&85kg 320

C语言sscanf函数的总结

在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。 这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。 以下源代码是本人测试的源文件,附带讲解注释。 /************************

gzshun 7万+

RT-DETR训练自己的数据集(从代码下载到实例测试)

在Windows10上配置CUDA环境教程是百度提出的一种实时目标检测模型。RT-DETR采用了与DETR相同的编码器和解码器结构,但对其进行了大量的优化,在保持较高检测精度的同时,实现了实时目标检测,为目标检测领域提供了一种新的有效解决方案,具有广泛的应用前景,如自动驾驶、智能监控、机器人等领域。以上是RT-DETR官方的论文和代码,详细介绍了RT-DETR的构成和实现。在YOLOv10中也实现了RT-DETR的代码,所以本文使用YOLOv10的项目文件进行RT-DETR的训练和测试。YOLOv10。

Limiiiing的博客 4万+

Android SystemUI——车载CarSystemUI加载(八)

车载 CarSystemUI 是指专门为汽车环境设计的用户界面和用户体验(UI/UX),它通常与 Android Automotive OS 或其他嵌入式操作系统一起工作,为驾驶者和乘客提供安全、直观且高效的交互方式。Android Automotive OS 是 Google 专门为汽车开发的操作系统版本,它基于 Android 平台,并针对车辆内部的使用进行了优化。

小旭的专栏 2174

甜甜C语言——sscanf()函数

文章目录前言函数头文件函数原型函数功能实现初级用法纯数字转换(int)纯数字转换(double)高级用法取指定长度的字符串取到指定字符为止关于 * 的使用高高级用法财大OJ例题结语 前言 最近突然多出来了C语言实践课,老师补充了很多新的知识,学到了很多✈️✈️,特别喜欢我的C语言老师(米老师),就算我说了名字,宝子💕💕你也不认识。有一说一,假如让我一直跟着米老师上课,我保证不会偷懒,而且还可能会跟💞宝儿们💞分享更多的神奇知识。 🚀🚀看见米老师就不自觉打开C Primer Plus ,打开 DEV ,开始写代

Lucky.Mr.Li的博客 6641

图像处理基础 || (一) python 读取图像的常用方式

图像的读取与保存是图像处理或计算机视觉领域中最基本的操作,python中有众多的库支持图像的读取、显示与存储,常用的库包括 matplotlib、skimage 和 Pillow 库。

weixin_40234309的博客 5689

C语言库函数篇1:sscanf用法

前言 本节,我们将学习C语言库函数sscanf()的使用,使用sscanf可以快速的从复杂字符串中获取自己需要的数据。 一、 基础知识 1.简介 sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。 2.函数描述 int sscanf(const char *buffer, const char *format, [argument]...); 参数: buffer:需要解析的源字符串 format:窗体控件字符串,定义解析字符串的规则,可以是一

weixin_45006076的博客 4386

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【C】详解sscanf函数

目录 前言 一、头文件 二、声明 1.介绍: 2.原型: 3.与scanf区别 : 三、参数 四、使用 1. 取指定长度的字符串 2. 格式化时间 3. 读入字符串 4. %*d和%*s加了(*)表示跳过此数据不读入(也就是不把此数据读入参数中) 5. 取到指定字符为止的字符串。如例子所示,遇到‘+’为止的字符串。 遇到空格为止的字符串 6. 取到指定字符集为止的字符串。如遇到小写字母为止的字符串。 7. 取仅包含指定字符集的字符串。(取仅包含数字和小写字母的字符串,...

YQ20210216的博客 2696

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C语言sprintf函数和sscanf函数

这里有关于sprintf函数和sscanf函数的一些知识

qq_69383179的博客 734

c语言sscanf函数作用,C语言中sscanf的用法

C语言中sscanf的用法C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。下面是小编为大家整理的C语言中sscanf的.用法,欢迎参考~名称:sscanf() - 从一个字符串中读进与指定格式相符的数据.复制代码 代码如下:函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int...

weixin_35422771的博客 759

C语言之函数sscanf()的用法

函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer存储的数据 format格式控制字符串 argument 选择性设定字符串 sscanf会从buffer里读进数据,依照fo

大葱的田地🌱 3万+

[C语言] sscanf如何实现sscanf_s?

在MCU开发中,因编译器不支持sscanf_s,需用sscanf替代。通过格式符%32[^ ]限制最大读取长度,防止缓冲区溢出,结合返回值检查确保解析成功。该方法安全、可移植,是嵌入式环境下解析字符串的可靠方案。

嵌入式单片机实验室 906

C语言中常用的sscanf函数

sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。sscanf遇到 空格 就会返回 (\n 也同样会返回 \n 之前的字符)还有很多用法大家可以去百度下,这里只是做一些简单的总结。可以看到这里因为一些不同的格式,会导致一些不同的结果。这里面不同的位置加数字会有不同的结果。其余的符号并不会返回(我只验证常用的,不包括所有)需要注意的是 不同的格式之间需要用 空格 隔开。

永不秃头的程序员的博客 1543

【c语言】sscanf函数的用法

网上搜索到的,怕忘了,记下1. 常见用法。以下是引用片段:  char str[512] = {0};  sscanf("123456 ", "%s", str);  printf("str=%s/n", str);  2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。以下是引用片段:  sscanf("123456 ", "%4s", str);  printf(

宁廷辉 822

C语言函数sscanf的用法

这并不复杂,但是,为了使所有的代码都有统一的风格,我需要改动很多地方,把已有的sscanf替换成我自己的分割函数。4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。其中的format可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}如在下例中,取仅包含1到9和小写字母的字符串。

2201_75776373的博客 537

c语言的sscanf函数的用法讲解

c语言sscanf函数用法

weixin_52082065的博客 3642

c语言中的sscanf函数

本文记录了sscanf函数的作用及使用示例

chen_znn的博客 1549

sscanf函数用法c语言,sscanf函数,sscanf函数的用法

sscanf函数,sscanf函数的用法1//用法举例2#include3#include4#defineN5125intmain()6{7charbuf[N],buf2[N],buf3[N];8memset(buf,0,sizeof(buf));9memset(buf2,0,sizeof(buf2));10memset(buf3,0,sizeof(buf3));//包...

weixin_29705519的博客 322

c语言sscanf函数作用,详解C语言sscanf()函数、vsscanf()函数、vscanf()函数

C语言sscanf()函数:从字符串中读取指定格式的数据头文件:#include sscanf()函数用于从字符串中读取指定格式的数据,其原型如下:int sscanf (char *str,char * format [,argument,...]);【参数】参数str为要读取数据的字符串;format为用户指定的格式;argument为变量,用来保存读取到的数据。【返回值】成功则返回参数数目,...

weixin_30628943的博客 489
上一篇: macOS 中将 .jar 文件关联到 Jar Launcher
下一篇: Joplin使用腾讯云对象存储(COS)进行同步
centralunit
博客等级 码龄10年 219粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值