【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说

目录

一、sprintf 用于组包

 应用1:按照规定格式组包

 应用2:将数值类型转换成字符串类型 

二、sscanf 用于解包

 应用1:%d提取数值‘0’~‘9’

  应用2:%s提取字符串(遇到'\0' 空格 回车结束提取)

 三、sscanf高级应用

1、跳过数据%*d %*s(*表示跳过该数据)

2、读取指定宽度的数据:%[width]s %[width]d

%[width]s的举例:

%[width]d举例: 

 综合案例分析:字符串"12345678"中将34用整数提取 67用字符串提取

 3、%[a-z] 表示读取 a 到 z 中任意字符,可叠加读取

%[a-z]读取:

 %[a-z,A-Z,0-9]叠加读取:

 4、%[aBc] 读取 a、B、c,具有贪婪性。

 5、%[^AB] 匹配非 A,B 的任意字符,贪婪性

四、const详解

1、const修饰普通变量 为只读变量

2、const 修饰*

 3、const 修饰 指针变量

 4、const 既修饰* 又修饰指针变量


一、sprintf 用于组包

组包:按照需要的格式 组成字符串

头文件:#include

用法:int sprintf(char *str, const char *format,...);

sprintf返回值为实际组包的长度

str -- 这是 C 字符串,是函数检索数据的源。

format -- 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符

 应用1:按照规定格式组包

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第1张图片

 应用2:将数值类型转换成字符串类型 

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第2张图片

二、sscanf 用于解包

解包:解析特定格式的数据

头文件:#include

用法:int sscanf(const char *str, const char *format, ...)

 应用1:%d提取数值‘0’~‘9’

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第3张图片

  应用2:%s提取字符串(遇到'\0' 空格 回车结束提取)

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第4张图片

 三、sscanf高级应用

1、跳过数据%*d %*s(*表示跳过该数据)

例:sscanf("1234 5678", "%*d %s", buf);//buf="5678"

2、读取指定宽度的数据:%[width]s %[width]d

%[width]s的举例:

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第5张图片

%[width]d举例: 

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第6张图片

 综合案例分析:字符串"12345678"中将34用整数提取 67用字符串提取

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第7张图片

 3、%[a-z] 表示读取 a 到 z 中任意字符,可叠加读取

注:从前往后尽可能多的读取,不匹配时立即退出

%[a-z]读取:

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第8张图片

 %[a-z,A-Z,0-9]叠加读取:

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第9张图片

 4、%[aBc] 读取 a、B、c,具有贪婪性。

注:从前往后尽可能多的读取,不匹配时立即退出,流指针不会往下移

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第10张图片

 5、%[^AB] 匹配 A,B 的任意字符,贪婪性

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第11张图片

扩展: %[^A-Z]匹配 A到Z 的任意字符,贪婪性。

四、const详解

1、const修饰普通变量 为只读变量

例:const int num=10;//num为只读,只能初始化,不能被赋值。

2、const 修饰*

const int *p

在使用中:

*p是只读 不可通过*p 修改p所指向的空间内容

p 可读可写 p可以指向其他空间

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第12张图片

 3、const 修饰 指针变量

int * const p = #

在使用中:

*p可读可写 可以通过*p修改p指向的空间内容

p只读 除了初始化 不能修改p的指向

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第13张图片

 4、const 既修饰* 又修饰指针变量

const int *const p

在使用中,*p和p都只读

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说_第14张图片

你可能感兴趣的:(C语言,c语言,开发语言,学习,后端)