C语言中常用的sscanf函数

文章目录

    • 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.120000sscanf("helloworld:1212 2023 12.12","%s %d %f",result_char, &result_int, &result_float);//the result is : helloworld:1212, time: 2023, data: 12.120000sscanf("helloworld1212 2023 12.12","%s %d %f",result_char, &result_int, &result_float);//the result is : helloworld1212, time: 2023, data: 12.120000printf("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.hqwc.cn/news/294443.html

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

相关文章

计算机网络——计算机网络的概述(一)

前言&#xff1a; 面对马上的期末考试&#xff0c;也为了以后找工作&#xff0c;需要掌握更多的知识&#xff0c;而且我们现实生活中也已经离不开计算机&#xff0c;更离不开计算机网络&#xff0c;今天开始我们就对计算机网络的知识进行一个简单的学习与记录。 目录 一、什么…

OpenCV4 工业缺陷检测的六种方法

文章目录 机器视觉缺陷检测工业上常见缺陷检测方法方法一&#xff1a;基于简单二值图像分析实现划痕提取&#xff0c;效果如下&#xff1a;方法二&#xff1a;复杂背景下的图像缺陷分析&#xff0c;基于频域增强的方法实现缺陷检测&#xff0c;运行截图&#xff1a;方法三&…

【C语言进阶篇】你真的了解预处理吗? 预处理详细解析

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一、预定义符号的含义二、#define2.1 #define定义标识符2.2 在define定义标识符的注意事项 三、#define 定义宏&…

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时,动态变化时无法及时刷新更新适配界面的问题

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 目录 Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 一、简单介绍…

代码图形注释自动生成(通过文字图像)

0. 简介 大家在学&#xff08;CTRL&#xff09;习&#xff08;C&#xff09;别人代码的时候&#xff0c;看到别人的代码程序&#xff0c;在日志中有很多很酷的代码注释&#xff0c;或者是有一些图形化注释方便理解。之前本人以为都是一个个手敲出来的。然后在网上一番搜索&…

Unity头发飘动效果

Unity头发飘动 介绍动作做头发飘动头发骨骼绑定模拟物理组件 UnityChan插件下载UnityChan具体用法确定人物是否绑定好骨骼节点&#xff08;要做的部位比如头发等&#xff09;给人物添加SpringManager骨骼管理器给骨骼节点添加SpringBone这里给每个头发骨骼都添加上SpringBone。…

【Python必做100题】之第二十五题(统计字符)

题目&#xff1a;输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其他字符的个数 代码如下&#xff1a; string input("请输入字符串:")char 0 number 0 space 0 other 0for i in string:if i.isalpha():char 1elif i.isdigit():number 1eli…

springboot集成springdoc-openapi(模拟前端请求)

目录 描述---痛点 Springfox对比springdoc-openapi 1. 成熟度和维护性&#xff1a; 2. 依赖和配置&#xff1a; 3. 注解和使用方式&#xff1a; 4. 特性和扩展性&#xff1a; 应用目录结构 pom文件 新增测试controller StaffController YUserController 启动测试看下…

亚马逊品牌分析ABA功能有哪些?亚马逊选品的量化标准有哪些?——站斧浏览器

亚马逊品牌分析ABA功能有哪些&#xff1f; 1、品牌市场份额&#xff08;Share of Voice&#xff09; ABA提供了品牌在特定类别中市场份额的详细数据。这一模块帮助品牌所有者准确评估其品牌在整个市场中的竞争地位和表现。通过了解市场份额&#xff0c;品牌方可以制定更具针对…

Guava的TypeToken在泛型编程中的应用

第1章&#xff1a;引言 在Java世界里&#xff0c;泛型是个相当棒的概念&#xff0c;能让代码更加灵活和类型安全。但是&#xff0c;泛型也带来了一些挑战&#xff0c;特别是当涉及到类型擦除时。这就是TypeToken大显身手的时候&#xff01; 作为Java程序员的咱们&#xff0c;…

Epson爱普生手臂机器人与PC通讯 C#

一、Epson手臂配置 1.安装Epson手臂控制软件 安装Epson手臂控制软体EPSON RC+ 7.0(根据实际需求下载应用),可以去官网下载安装。 2.硬件配置 准备一台PC,用网线连接PC和EPSON手臂控制器。 3.在PC上修改IP地址 EPSON手臂默认IP(192.168.0.1),PC IP改为手臂同一网段…

MFC使用高速绘图控件high-speed Charting Control绘制柱形图

1. 创建MFC单文档工程BarChartDemo。 2. 在工程文件夹下新建文件夹ChartCtrl,将ChartCtrl源码放入,如下图所示。在工程中添加这些项,项目——添加——现有项,全部添加。 3. 添加一个对话框,ID为IDD_DLG_BAR,类名为CBarDlg。 4. 在对话框中添加Custom Control控件,将控…