Linux C语言 45-sscanf函数

Linux C语言 45-sscanf函数

本节关键字:Linux、C语言、字符串读取、字符串格式化、正则表达式

相关C库函数:printf、sscanf

格式化读取字符串

c 复制代码
#include <stdio.h>
int sscanf(const char *str, const char *format, ...);
/**
@brief  从字符串读取格式化输入
@param  str C语言字符串
@param  format 可以是:%c %d %f %o %s %u %x %p %[] %%等
@param  ... [可变参数](https://blog.csdn.net/qq_45157350/article/details/134600815)
@return 成功返回匹配和赋值的个数,失败返回EOF
*/
c 复制代码
#include <stdio.h>

int main()
{
	// 从字符串中格式化读取子字符串
	int ret;
	char sBuf[512] = {0};
	char sKey[128] = {0};
	char sValue[128] = {0};

	ret = sscanf("123456 ", "%s", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取指定长度,例如:读取4个字符
	ret = sscanf("132456 ", "%4s", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取到指定字符为止,例如:读取到空格为止
	ret = sscanf("213456 ABC", "%[^ ]", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取到指定字符为止,例如:读取到回车符为止
	ret = sscanf("213456 ABC", "\n%[^\n]", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取指定字符集,例如:只读取1到9的数字和小写字母
	ret = sscanf("123abcABC", "%[1-9a-z]", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取到大写字母为止
	ret = sscanf("123abcABC", "%^A-Z", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取/和@之间的字符
	ret = sscanf("abc/123456@ABC", "%*[^/]/%[^@]", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 只读取world
	ret = sscanf("hello, world", "%*s%s", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 读取等号两边的数据
	ret = sscanf("user=admin\r\n", "%[^=]=%[^\r\n]", skey, svalue);
	printf("ret:%d, skey:%s, svalue:%s\n", ret, skey, svalue);

	// 读取[section]
	ret = sscanf("[section]", "[%[^]]", sBuf);
	printf("ret:%d, sBuf:%s\n", ret, sBuf);

	// 未完,后续还会补充...

	return 0;
}

正则表达式

Linux C语言 46-正则表达式

相关推荐
无小道12 分钟前
Qt——QWidget
开发语言·qt
时艰.17 分钟前
Java 并发编程之 CAS 与 Atomic 原子操作类
java·开发语言
云泽80831 分钟前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器
j_xxx404_35 分钟前
Linux:基础IO
linux·运维·服务器
梵刹古音44 分钟前
【C语言】 函数基础与定义
c语言·开发语言·算法
梵刹古音1 小时前
【C语言】 结构化编程与选择结构
c语言·开发语言·嵌入式
Yvonne爱编码1 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
一方_self1 小时前
了解和使用python的click命令行cli工具
开发语言·python
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][i2c]i2c-dev
linux·笔记·学习
南宫码农1 小时前
我的电视 - Android原生电视直播软件 完整使用教程
android·开发语言·windows·电视盒子