需包含头文件:C 标准库 - <stdio.h>

文章目录

  • 描述
  • 声明
  • 参数
  • 返回值
  • 实例
  • 我在VS上测试(VS上要用sscanf_s)
    • 示例1
    • 示例2(提取时能默认以空格分割)

描述

C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。

声明

下面是 sscanf() 函数的声明。

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

参数

  • str – 这是 C 字符串,是函数检索数据的源。
  • format – 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
  • format 说明符形式为 [=%[*][width][modifiers]type=],具体讲解如下:

    sscanf 类型说明符:

  • 附加参数 – 这个函数接受一系列的指针作为附加参数,每一个指针都指向一个对象,对象类型由 format 字符串中相应的 % 标签指定,参数与 % 标签的顺序相同。
  • 针对检索数据的 format 字符串中的每个 format 说明符,应指定一个附加参数。如果您想要把 sscanf 操作的结果存储在一个普通的变量中,您应该在标识符前放置引用运算符(&),例如:
int n;
sscanf (str,"%d",&amp;n);

返回值

如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。

实例

下面的实例演示了 sscanf() 函数的用法。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{int day, year;char weekday[20], month[20], dtm[100];strcpy( dtm, "Saturday March 25 1989" );sscanf( dtm, "%s %s %d  %d", weekday, month, &day, &year );printf("%s %d, %d = %s\n", month, day, year, weekday );return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

March 25, 1989 = Saturday

我在VS上测试(VS上要用sscanf_s)

sscanf_s 取值的时候,需要在每个取值后面指定取值的最大大小。
(而且根据VS提示,貌似还需要是 unsigned int 类型)

_CRT_STDIO_INLINE int __CRTDECL sscanf_s(_In_z_                         char const* const _Buffer,_In_z_ _Scanf_s_format_string_ char const* const _Format,...)
sscanf_s(inputString, "%s.%s.%s.%s", s1, s1.length, s2, s2.length, s3, s3.length, s4, s4.length);

示例1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{int day, year;char weekday[20], month[20], dtm[100];strcpy_s(dtm, "Saturday March 25 1989");sscanf_s(dtm, "%s %s %d %d", weekday, (unsigned int)sizeof(weekday), month, (unsigned int)sizeof(month), &day, &year);printf("%s %d, %d = %s\n", month, day, year, weekday);return(0);
}

运行结果:

March 25, 1989 = Saturday

示例2(提取时能默认以空格分割)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{char line[1024] = "path=/live/main_stream video_type=7 width=1920 height=1080 image_type=4 video_path=rkispp_scale0";const char* p;p = strstr(line, "path=");char path[64];if(NULL != p)sscanf_s(p, "path=%s", path, (unsigned int)sizeof(path));return(0);
}

运行调试结果:

参考文章1:C 库函数 - sscanf()

参考文章2:sscanf,sscanf_s及其相关用法

C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)相关推荐

  1. c++ 数组的输入遇到特定字符停止输入_C语言 第4章-字符串和格式化输入/输出

    #include 用数组name储存字符串,name数组有40个字节,每个字节储存一个字符值. 在scanf()函数中,输入字符串name没有&前缀. C预处理器把字符常量DENSITY定义为 ...

  2. C语言函数fscanf()(从流 stream 读取格式化输入)(如果成功,返回成功匹配和赋值的个数;否则返回EOF)(分隔符:space、Tab、Enter)

    C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例1 实例2 实例3 注意(分隔符:space.Tab.Enter) 换行格式化输入示例(暂时只能弄英文字符,中文 ...

  3. c语言sscanf函数和结构体,C语言sprintf与sscanf函数 -电脑资料

    1.前言 我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来,总结一下.C语言提供了一些列的格式化输入输出函数,最基本的是面向控制台标准 ...

  4. R语言str_trim函数去除字符串中头部和尾部的空格

    R语言str_trim函数去除字符串中头部和尾部的空格 目录 R语言str_trim函数去除字符串中头部和尾部的空格 #导入包和库 #仿

  5. R语言str_extract函数从字符串中抽取匹配模式的字符串

    R语言str_extract函数从字符串中抽取匹配模式的字符串 目录 R语言str_extract函数从字符串中抽取匹配模式的字符串 #导入包和库

  6. R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串

    R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符.str_sub函数指定起始位置和终止位置替换子字符串 目录

  7. R语言nchar函数统计字符串中字符个数实战

    R语言nchar函数统计字符串中字符个数实战 目录 R语言nchar函数统计字符串中字符个数实战 #基础语法

  8. c语言子函数返回字符串的正确方式

    c语言子函数返回字符串的错误 最近做leetcode上的一道题,通过子函数返回字符串.开始时用局部变量的字符串返回的,认为返回了字符串的首地址,便可以get到这个字符串,但由于局部变量离开函数后被回收 ...

  9. C语言字符串0x,0X04 字符串跟格式化输入/输出

    0X04 字符串和格式化输入/输出 字符串(character string)就是一个或多个字符的序列.如:"hello world",双引号不是字符串的一部分,而是通知编译器,这 ...

最新文章

  1. MPLS 第一话 :传统IP路由的局限性
  2. LINUX 下 WEBlogic集群的搭建-01
  3. 【模拟退火】解决【TSP】问题
  4. [Codeforces]Codeforces Round #460 (Div. 2)
  5. 使用windows server backup备份还原hyper-v 3.0虚拟机
  6. hands-on Machine Learning with sklearn
  7. 云应用基础技术成熟需七年时间
  8. 年夜饭之 -- 麻油鸡
  9. MVC利用URLRoute实现伪静态后正真的静态html无法访问
  10. FTP上传失败报错解决
  11. 2021年遥感类SCI期刊中科院分区排名与影响因子汇总
  12. 基于PID的车辆ABS建模与仿真
  13. 自动驾驶货运编队行驶介绍
  14. cocos creator游戏发布和部署-HTML5篇
  15. RGB图像转换为灰度图像的原理
  16. 技术人员的公众号如何打造高质量内容和精美排版?
  17. IntelliJ IDEA单元测试入门
  18. ESP8266-NodeMCU项目(二):ESP8266-NodeMCU+Blinker+DHT11+小爱同学
  19. 丰润二中2021高考成绩查询,2021年唐山中考成绩查询
  20. XCP实战系列介绍06-CANape标定及标定后hex生成操作指导

热门文章

  1. [ubuntu] chromium不断自己刷新问题
  2. 医学院计算机社发展,医学院计算机教学创新思路.docx
  3. linux shell 脚本 延时,linux下定时任务和延迟任务
  4. 【转】如何使用应用日志(Application Log)
  5. SM50强制终结后台JOB进程
  6. 【转】SAP地产业正青春
  7. ABAP CHECKBOX 和LISTBOX使用指南
  8. 比尔盖茨跌落第二!世界首富换人了
  9. 使用CL_GOS_DOCUMENT_SERVICE对采购申请挂附件
  10. 现金流量表的编制公式