C语言-sscanf函数的正则表达式的使用

c语言的函数中sscanf函数对字符串的处理蛮有好处的,提高了效率

format格式:

 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}

序号 符号 意义
1 % 格式化
2 * 跳过
3 width 读取宽度
4 h | l | I64 | L 通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size
5 type 像%d,或者%s

程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) { 
	char  str[128]={0};
	
	//简单赋值
	sscanf("usernaem=admin&pwd=Abc12345","%s",str);
	printf("1 str:%s\n:",str);
	
	//获取指定长度的字符串
	sscanf("usernaem=admin&pwd=Abc12345","%4s",str);
	printf("2 str:%s\n:",str);

	//遇到指定为止的字符串
	sscanf("username=admin&pwd=Abc12345","%[^=]",str);
	printf("3 str:%s\n:",str);
	
	//遇到指定为止的字符串
	sscanf("username=admin&pwd=Abc12345","%*[a-z]%s",str);
	printf("4 str:%s\n",str);
	
    //跳过某些字段
	sscanf("123456abcd","%*d%s",str);
	printf("5 str:%s\n:",str);
	
	//跳过某些字段
	sscanf("username=admin&pwd=Abc12345","%[a-z=]",str);
	printf("6 str::%s\n",str);
	
	//遇到指定为止的字符串
	sscanf("username=admin&pwd=Abc12345","%[^=]",str);
	printf("7 str:%s\n",str);

	return 0;
}

参考:

https://www.jb51.net/article/138506.htm

https://www.cnblogs.com/Jimmy1988/p/8900440.html

猜你喜欢

转载自blog.csdn.net/weixin_39752599/article/details/113154247