C语言中常用的sscanf函数

news2025/1/31 21:43:40

文章目录

    • 1. 接受全部参数:
    • 2、分辨数字和字符
    • 3. 数字和字符一起会默认是字符
    • 4. 同时接收多个变量
    • 5. 指定长度的集合操作
    • 6. 排除部分字符

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

一些代码演示:

1. 接受全部参数:

#include <stdio.h>

int main()
{
    char result_char[100];
    //int  result_int;
    sscanf("helloworld","%s",result_char);
    printf("the result is : %s", result_char);
    return 0;
}

运行:
在这里插入图片描述
sscanf遇到 空格 就会返回 (\n 也同样会返回 \n 之前的字符)
其余的符号并不会返回(我只验证常用的,不包括所有)

#include <stdio.h>

int main()
{
    char result_char[100];
    //int  result_int;
    sscanf("hello world","%s",result_char);
    printf("the result is : %s", result_char);
    return 0;
}

在这里插入图片描述

2、分辨数字和字符

#include <stdio.h>

int main()
{
    char result_char[100];
    int  result_int;
    float result_float;
    sscanf("helloworld 2023 12.12","%s %d %f",result_char, &result_int, &result_float);
    printf("the result is : %s, time: %d, data: %f\n", result_char, result_int, result_float);
    return 0;
}

运行:
在这里插入图片描述
需要注意的是 不同的格式之间需要用 空格 隔开。

3. 数字和字符一起会默认是字符

#include <stdio.h>

int main()
{
    char result_char[100];
    int  result_int;
    float result_float;
    //sscanf("helloworld-1212 2023 12.12","%s %d %f",result_char, &result_int, &result_float);
    //the result is : helloworld-1212, time: 2023, data: 12.120000
    sscanf("helloworld:1212 2023 12.12","%s %d %f",result_char, &result_int, &result_float);
    //the result is : helloworld:1212, time: 2023, data: 12.120000
    sscanf("helloworld1212 2023 12.12","%s %d %f",result_char, &result_int, &result_float);
    //the result is : helloworld1212, time: 2023, data: 12.120000
    printf("the result is : %s, time: %d, data: %f\n", result_char, result_int, result_float);
    return 0;
}

4. 同时接收多个变量

#include <stdio.h>

int main()
{
    char result_char[100];
    int  result_int;
    float result_float;
    // 等号两边最好不要加 空格,不同类型用 分号 分开
    // 这里默认都是接收 = 后面的东西
    // "%*[^=] = %[^;]; time=%d; data=%f" 这里也用分号分开
    sscanf("name=helloworld; time=2023; data=12.12","%*[^=] = %[^;]; time=%d; data=%f",result_char, &result_int, &result_float);
	
    printf("the result is :%s, time:%d, data:%f\n", result_char, result_int, result_float);
    return 0;
}

在这里插入图片描述
可以看到这里因为一些不同的格式,会导致一些不同的结果。

5. 指定长度的集合操作

#include <stdio.h>

int main()
{
    char result_char[100];
    //int  result_int;
    //float result_float;
    // [a-z0-5] 字符指定为a-z的 数字指定为 0-5的 
    sscanf("hello2023world6789","%[a-z0-5]",result_char);
	// 不会打印 6-9的数字
    printf("the result is :%s\n", result_char);
    return 0;
}

运行
在这里插入图片描述

6. 排除部分字符

#include <stdio.h>

int main()
{
    char result_char[100];
    //int  result_int;
    //float result_float;
    // 不要 o-z的字符
    sscanf("helloworld","%[^o-z]",result_char);

    printf("the result is :%s\n", result_char);
    return 0;
}

在这里插入图片描述
这里面不同的位置加数字会有不同的结果。具体的没弄明白。

还有很多用法大家可以去百度下,这里只是做一些简单的总结。

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

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

相关文章

网安面试三十道题(持续更新)(sql注入系列)

61 给你一个网站&#xff0c;一般怎么做渗透测试的 先确定黑盒测试还是白盒测试 黑盒测试 信息收集&#xff1a; 服务器相关---&#xff1a;系统版本&#xff0c;真实IP&#xff0c;开放端口&#xff0c;使用的中间件 指纹信息---有无cdn加速&#xff0c;dns解析记录&#xff0…

MailChecker:一款功能强大的跨语言临时电子邮件安全检测库

关于MailChecker MailChecker是一款功能强大的跨语言临时电子邮件安全检测工具&#xff0c;该工具可以帮助广大研究人员快速对目标电子邮件进行安全检测和内容验证。该工具后端由一个包含了超过55000个的虚假电子邮件提供商的数据库驱动&#xff0c;当你需要使用电子邮件与你的…

Linux---优先级+并发+进程调度队列

目录 一、优先级 二、并发 三、Linux2.6内核进程调度队列 一、优先级 我们发现操作系统中有很多等待队列&#xff0c;也就是说进程需要排队&#xff0c;而排队的本质就是确认优先级&#xff0c;优先级高的排在前面&#xff0c;低的排在后面 为什么要有优先级&#xff1f; 本…

接口测试学习笔记

文章目录 认识urlhttp协议接口规范Postman实现接口测试设计接口测试用例使用软件发送请求并查看响应结果Postman 自动关联Postman如何提交multipart/form-data请求数据Postman如何提交查询参数Postman 如何批量执行用例单接口测试Postman 断言Postman参数化 接口测试自动化requ…

STM32的以太网外设+PHY(LAN8720)使用详解(4):STM32管脚配置

0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册1 MCU管脚配置 1.1 使能外设相关时钟 STM32配置任何外设的第一步都是使能相关的外设时钟&#xff0c;根据前面的原理图我们需要使能相关的引脚时钟&#xff0c;同时我们需要使能SYSCFG时…

2023年终总结 | 四平八稳

年度回顾 年度关键词&#xff1a;四平八稳 百科解读&#xff1a;形容物体放置的平稳或言行稳当&#xff1b;也指做事但求无过&#xff0c;不思进取。 我在写这篇文章就在思考用什么关键词来描述我过去这一年&#xff0c;似乎这一年没有特别让我特别惊喜的事情&#xff0c;无论是…

网工内推 | 华晨宝马、金士顿,最高16薪招网工,NP以上优先

01 华晨宝马汽车有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1&#xff0c; 参与公司数字化建设&#xff0c;负责厂区生产区域和办公区域的网络规划、建设和优化&#xff0c;包括有线网络和无线网络&#xff1b; 2&#xff0c; 提供公司数据中心架构规划&a…

「Verilog学习笔记」自动售卖机

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule sale(input clk ,input rst_n ,input sel ,//sel0,5$dranks,sel1,10&$drinksinput …

react当中生命周期(旧生命周期详解)

新生命周期https://blog.csdn.net/kkkys_kkk/article/details/135156102?spm1001.2014.3001.5501 目录 什么是生命周期 react中的生命周期 旧生命周期 生命周期图示 常用的生命周期钩子函数 初始化阶段 挂载阶段 在严格模式下挂载阶段的生命周期函数会执行两次原因 更…

RocketMQ高级原理:深入剖析消息系统的核心机制

一、基础概念&#xff1a; 1. 消息模型 RocketMQ基于Producer、Broker、Consumer三部分构建。其中&#xff0c;Producer负责生成消息&#xff0c;Consumer处理消息&#xff0c;而Broker则承担消息存储的角色。Broker服务器可以存储多个Topic的消息&#xff0c;并支持消息在不同…

核货宝订单管理系统提高企业效率

核货宝订单管理系统可以帮助企业提高效率&#xff0c;具体体现在以下几个方面&#xff1a; 一、订单自动化处理&#xff1a;核货宝订单管理系统支持订单批发和多渠道订单导入&#xff0c;它可以从订单的接收、处理、跟进、发货、到售后服务等环节都可以通过系统自动完成&#x…

求职方略-倒金字塔型自我介绍

第一步,开头第一句话提纲挈领,点出你的主要“卖点” 自我介绍的第一句话很重要,要有足够的吸引力,有足够的信息量,还要有足够的说服力,能产生先声夺人的效果。 一般的自我介绍喜欢按照时间线索依次介绍自己的经历,例如:“我大学毕业后就进入一家大公司的研发中心,工…

云渲染怎么批量效果图、影视动画?云渲染在效果图、影视的作用

在设计和建筑领域&#xff0c;设计师往往需要制作出精细逼真的效果图以向客户展示他们的设计思路。然而&#xff0c;在这些行业中&#xff0c;大量生成效果图需求非常费时费力。幸运的是&#xff0c;日期到了云渲染的这个时代&#xff0c;设计师们可以通过云渲染服务以一种更加…

第51周,第二期技术动态

大家好&#xff0c;才是真的好。 今天周五&#xff0c;我们主要介绍与Domino相关产品新闻&#xff0c;以及互联网或其他IT行业动态等。 一、HCL Domino 14 Factory 上周三&#xff0c;即2023 年 12 月 13 日&#xff0c;HCL Notes Domino 14在日本举办了第一个线下产品巡回活…

PS里面怎么提取图上要的颜色然后用到另一个部位去

PS里面要提取图上要的颜色然后用到另一个部位去&#xff0c;具体步骤如下&#xff1a; 在ps里打开特定的图像文件&#xff1b; 想要提取图上的哪个颜色&#xff0c;就使用”吸管工具“在图上特定的位置上点击一下&#xff0c;就会看到前景色变成了相应的颜色&#xff1b; 然…

Ethercat 读从站状态报文分析

涉及的从站寄存器&#xff1a;Register AL Status 0x0130:0x0131 。 1&#xff0c;发送报文 1&#xff09;IgH dmesg看到的报文 [18773.590655] geshifei ec_master_send_datagrams 1059: Adding datagram datagram->index0 [18773.590656] EtherCAT DEBUG 0: frame siz…

macOS 开发 - MASShortcut

文章目录 关于 MASShortcut项目结构 快速使用源码学习检测是否有热键冲突处理 Event macOS 开发交流 秋秋群&#xff1a;644096295&#xff0c;V : ez-code 关于 MASShortcut MASShortcut 是一款快捷键管理工具&#xff0c;替代和兼容 ShortcutRecorder github : https://git…

nodejs+vue+ElementUi家政服务系统c90g5

项目中登录模块用到token家政服务平台有管理员&#xff0c;雇主&#xff0c;雇员三个角色。管理员功能有个人中心&#xff0c;雇主管理&#xff0c;雇员管理&#xff0c;资料认证管理&#xff0c;项目类型管理&#xff0c;服务项目管理&#xff0c;需求信息管理&#xff0c;服务…

yolo-nas无人机高空红外热数据小目标检测(教程+代码)

前言 YOLO-NAS是目前最新的YOLO目标检测模型。从一开始&#xff0c;它就在准确性方面击败了所有其他 YOLO 模型。与之前的 YOLO 模型相比&#xff0c;预训练的 YOLO-NAS 模型能够以更高的准确度检测更多目标。但是我们如何在自定义数据集上训练 YOLO NAS&#xff1f; 这将是我…

第4节-​简历的基本要素-相关性原则

(点击即可收听) 简历是求职的敲门砖&#xff0c;简历是否优秀的评价标准是求职者能否利用简历得到面试机会并且斩获Offer&#xff08;录取通知&#xff09; 相关性原则 相关性是简历撰写中最重要的一个原则&#xff0c;对于工作经验多的人&#xff0c;相关性更重要&#xff0c;…