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

这篇具有很好参考价值的文章主要介绍了【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<stdio.h>

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

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

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

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

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

二、sscanf 用于解包

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

头文件:#include<stdio.h>

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

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

 三、sscanf高级应用

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

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

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

%[width]s的举例:

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

%[width]d举例: 

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

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

%[a-z]读取:

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

扩展: %[^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的详细解说,C语言,c语言,开发语言,学习,后端

 3、const 修饰 指针变量

int * const p = &num;

在使用中:

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

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端

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

const int *const p

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

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说,C语言,c语言,开发语言,学习,后端文章来源地址https://www.toymoban.com/news/detail-578658.html

到了这里,关于【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序(.wxapkg)源码包解包的方法

    首先下载微信小程序的解包工具:微信小程序(.wxapkg)文件解包工具 下载地址: 工具下载 cmd切换到源码的存放目录,直接将工具和源码放一个文件夹吧,执行: 执行后即可看到解压后的文件夹,进去就可以看源码了。

    2024年02月14日
    浏览(37)
  • Python中的数据压缩与解压缩:深入了解zlib模块

    Python有一些内置库用于处理数据压缩和解压缩,其中一个就是 zlib 模块。这个模块为DEFLATE压缩算法和相关的 gzip (文件格式)提供了支持。在这篇文章中,我们将深入探讨如何使用 zlib 模块进行数据压缩和解压缩。 一、zlib模块的基础 在Python中, zlib 模块为处理大量数据提供

    2024年02月09日
    浏览(47)
  • JavaScript高级技巧:深入探索JavaScript语言的高级特性和用法

    当我们谈论JavaScript高级技巧时,以下是一些示例来说明这些概念: 闭包(Closures): 在上面的例子中, innerFunction 是一个闭包,它可以访问外部函数 outerFunction 中的 outerVariable 变量,即使在外部函数执行结束后也可以。 高阶函数(Higher-Order Functions): 在上面的例子中,

    2024年02月08日
    浏览(51)
  • 深入理解Linux网络——内核是如何发送网络包的

    系列文章: 深入理解Linux网络——内核是如何接收到网络包的 深入理解Linux网络——内核与用户进程协作之同步阻塞方案(BIO) 深入理解Linux网络——内核与用户进程协作之多路复用方案(epoll) 深入理解Linux网络——内核是如何发送网络包的 深入理解Linux网络——本机网络

    2024年02月15日
    浏览(89)
  • 深入理解Linux网络——内核是如何接收到网络包的

    系列文章: 深入理解Linux网络——内核是如何接收到网络包的 深入理解Linux网络——内核与用户进程协作之同步阻塞方案(BIO) 深入理解Linux网络——内核与用户进程协作之多路复用方案(epoll) 深入理解Linux网络——内核是如何发送网络包的 深入理解Linux网络——本机网络

    2024年02月15日
    浏览(38)
  • 深入理解Linux内核网络——内核是如何接收到网络包的

    系列文章: 深入理解Linux网络——内核是如何接收到网络包的 深入理解Linux网络——内核与用户进程协作之同步阻塞方案(BIO) 深入理解Linux网络——内核与用户进程协作之多路复用方案(epoll) 深入理解Linux网络——内核是如何发送网络包的 深入理解Linux网络——本机网络

    2024年02月13日
    浏览(43)
  • 深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制

    目录 1、引言 2、WebRTC简介 3、什么是NetEQ? 4、NetEQ技术详解 4.1、NetEQ概述 4.2、抖动消除技术 4.3、丢包补偿技术 4.4、NetEQ概要设计 4.5、NetEQ的命令机制 4.6、NetEQ的播放机制 4.7、MCU的控制机制 4.8、DSP的算法处理 4.9、DSP算法的模拟测试 5、NetEQ源文件说明 6、参考文档 C++软件异常

    2024年04月25日
    浏览(56)
  • 深入探究音视频开源库 WebRTC 中 NetEQ 音频抗网络延时与抗丢包的实现机制

    记录日常工作中遇到的音视频问题,以供大家借鉴或参考!

    2024年02月08日
    浏览(66)
  • 深入解密:卷积神经网络的视觉之旅

    第1步:了解CNN的基本原理 深度学习是人工智能领域的一个重要分支,而卷积神经网络(Convolutional Neural Networks,CNN)是深度学习在计算机视觉领域取得巨大成功的关键因素之一。CNN在图像分类、目标检测、图像生成等任务中展现了出色的性能,并成为许多实际应用的核心技术

    2024年02月07日
    浏览(41)
  • R语言中R包的下载和安装位置

    R语言中R包的下载和安装位置 R语言是一种广泛使用的统计分析和数据科学编程语言,它通过R包来扩展其功能和添加特定领域的功能。在R中,R包的下载和安装位置是非常重要的,因为它们决定了R包的可用性和加载方式。 R包的下载位置:CRAN R语言的标准包管理系统是CRAN(C

    2024年02月06日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包