专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

sscanf函数用法,C语言中sscanf函数6种用法详解

来源:小易整编  作者:小易  发布时间:2023-03-22 02:17
摘要:sscanf函数用法,C语言中sscanf函数6种用法详解sscanf()函数实现:不管接触过任何编程语言也好,学过正则表达式的都对sscanf()的使用并不陌生了。如何通过sscanf将已知的字符串通过格式化匹配出有效的信息?下面我把要实...

sscanf函数用法,C语言中sscanf函数6种用法详解

sscanf()函数实现:

不管接触过任何编程语言也好,学过正则表达式的都对sscanf()的使用并不陌生了。如何通过sscanf将已知的字符串通过格式化匹配出有效的信息?下面我把要实现对象的方法和作用意义给列出来,如下所示:

格式

作用

%*s或%*d

跳过数据

%[width]s

读指定宽度的数据

%[a-z]

匹配a到z中任意字符(尽可能多的匹配)

%[aBc]

匹配a、B、c中一员,贪婪性

%[^a]

匹配非a的任意字符,贪婪性

%[^a-z]

表示读取除a-z以外的所有字符

以上有六种方法,每种方法都来实现以下:

函数原型为:int sscanf(const char *const_Buffer, const char*const _Format, ...)

作用:从一个字符串中读进与指定格式相符的数据的函数

第1种方法:

利用%*s或%*d的格式实现跳过数据:

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="666helloworld";char temp1[128]={0};sscanf(str1,"%*d%s", temp1);printf("%s\n", temp1);// 得到的是helloworldprintf("---------------\n");char* str2 ="helloworld666";char temp2[128]={0};sscanf(str2,"%*[a-z]%s", temp2);printf("%s\n", temp2);// 得到的是666}intmain(){test();system("pause");return0;}

结果图为:


图片


第2种方法:

通过%[width]s格式进行读指定宽度的数据:

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="666helloworld";char temp1[128]={0};sscanf(str1,"%8s", temp1);printf("%s\n", temp1);// 得到的是666hello}intmain(){test();system("pause");return0;}

第3种方法:

通过%[a-z]格式进行匹配a到z中任意字符(尽可能多的匹配):

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="666helloworld";char temp1[128]={0};sscanf(str1,"%*d%[a-z]", temp1);printf("%s\n", temp1);// 得到的是helloworld}intmain(){test();system("pause");return0;}

第4种方法:

通过%[aBc]格式进行匹配a、B、c中的一员,贪婪性正则表达式

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="abccabchelloworld";char temp1[128]={0};sscanf(str1,"%[abc]", temp1);//  如果刚开始就遇到匹配失败,后续则不再匹配printf("%s\n", temp1);// 得到的是abccabc}intmain(){test();system("pause");return0;}

第5种方法:

通过方法: %[^a]格式进行匹配非a的任意字符,也属于贪婪性正则表表达式

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="abccabchelloworld";char temp1[128]={0};sscanf(str1,"%[^c]", temp1);//  如果匹配到字符,则字符后面的不在进行匹配printf("%s\n", temp1);// 得到的是ab}intmain(){test();system("pause");return0;}

第6种方法:

通过%[^a-z]格式,进行匹配读取除a-z以外的所有字符

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>voidtest(){char* str1 ="hello52wo3rld";char temp1[128]={0};sscanf(str1,"%[^0-9]", temp1);//  如果匹配到字符,则字符后面的不在进行匹配printf("%s\n", temp1);// 得到的是hello}intmain(){test();system("pause");return0;}



本文地址:IT百科频道 https://www.hkm168.com/tags/936152.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT百科
小编:小易整编
相关文章相关阅读
  • c语言的输入函数有哪些

    c语言的输入函数有哪些

    c语言的输入函数有:1、scanf()函数、从标准输入stdin读取格式化输入;2、getchar()函数,从标准输入stdin获取一个字符;3、gets()函数,从标准输入stdin读取一行;4、getch()函数,从stdin流中读取字...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 什么是Linux系统中nc命令?nc命令的用法详解

    什么是Linux系统中nc命令?nc命令的用法详解

    这篇文章主要介绍了linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用。功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小...

  • Java中的Scanner操作详解

    Java中的Scanner操作详解

    scanner是java中的一个常用类,用来读取控制台或文件中的输入数据。它提供了一种简单的方式来解析基本类型和字符串,并支持对正则表达式进行匹配。Scanner类位于java.util包中,因此在编写程序时需要import...

  • Excel函数学习之CHOOSE函数 vs IF函数

    Excel函数学习之CHOOSE函数 vs IF函数

    如果Excel函数圈也有江湖,那CHOOSE函数绝对算得上扫地僧。它不如IF函数那般威震江湖,但它的本领却更胜一筹。今天小花就带大家好好见识一下被大多数人冷遇的CHOOSE函数!   CHOOSE函数使用index_num返回数值参数列...

  • Matlab中length函数怎么用

    Matlab中length函数怎么用

    在matlab中,length函数用于返回向量、数组或字符串中的元素个数。以下是length函数的一些用法示例:1、返回向量中的元素个数:v = [1, 2, 3, 4, 5];  numElements = length(v); % 结果...

  • mysql列转行函数是什么

    mysql列转行函数是什么

    在mysql中,列转行函数是“group_concat()”函数;该函数用于将非空列值按照分组条件进行合并并最终返回,如果其中有空值则返回的结果是空,语法为“selectgroup_concat(name separator';')列...

  • 周排行
  • 月排行
  • 年排行

精彩推荐