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-正则表达式

相关推荐
tkevinjd1 小时前
C++中线程库的基本操作
开发语言·c++
卫生纸不够用1 小时前
(三)Linux性能优化-CPU-CPU 使用率
linux·运维·服务器
CodeWithMe1 小时前
【C/C++】不同防止头文件重复包含的措施
c语言·开发语言·c++
子豪-中国机器人1 小时前
C++ 信息学奥赛总复习题答案解析
开发语言·c++·算法
oioihoii2 小时前
C++11列表初始化:从入门到精通
java·开发语言·c++
zdy12635746882 小时前
python第48天打卡
开发语言·python
whoarethenext2 小时前
使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
开发语言·c++·opencv
whoarethenext2 小时前
使用 C/C++的OpenCV 实现模板匹配:从基础到优化
c语言·c++·opencv
Clownseven2 小时前
Ubuntu 24.04 LTS 长期支持版发布:对服务器用户意味着什么?新特性、升级建议与性能影响初探
linux·服务器·ubuntu
晴天¥2 小时前
第二部分-IP及子网划分
服务器·网络·tcp/ip