`
raojl
  • 浏览: 209691 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

巧用串指针值拷贝解析不定长网络消息字节流

阅读更多
//1代表整形,0是串
int UseAble[100] = {1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0,
1,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
void CutStrFromBody(char* buffer,int Size)
{
int i = 0;
while(i++ < 100)
{

if(UseAble[i])//if integer
{
long templong;
Size -= 4;
memcpy(&templong,buffer ,Size);
templong = ntohl(templong);
                        memcpy(buffer,buffe r+ 4 ,Size);
}
else //else string
{
CString tempStr = buffer;//这就是巧妙之处
Size -= (tempStr.Length() + 1);
memcpy(buffer,buffer + tempStr.Length() + 1,Size);
}
i++;
}
}
2
1
分享到:
评论

相关推荐

    将字符串str1 拷贝到str2中

    本篇文章将详细探讨如何通过指针的方式将一个字符串`str1`完整地拷贝到另一个字符串`str2`中。 #### 二、代码解析 首先,我们来看一下示例代码的关键部分: ```c #include void main(void) { char str1[10] = ...

    易语言指针操作字符串和数组

    - 指针可以用来遍历字符串,通过增加或减少指针值来访问不同位置的字符。 - 可以使用指针配合字符串函数,如`字符串长度`、`比较字符串`等,对指针指向的字符串进行各种操作。 4. **数组和指针**: - 数组是一...

    C语言指针大全+指针实例解析

    下面我们将深入探讨指针的基本概念、使用方法以及相关的实例解析。 1. **指针基础** - **定义与声明**:指针变量是用来存储内存地址的变量,声明时需指定它所指向的数据类型,如`int *p`表示p是一个指向整型变量的...

    STM32F4 串口 DMA接收不定长数据.zip

    STM32F4系列是基于ARM Cortex...通过以上步骤,STM32F417能够高效地通过串口DMA接收不定长数据。这在实时数据传输、遥测和物联网应用中非常有用。理解并熟练掌握这种技术,对于提升STM32项目的设计水平和性能至关重要。

    C#通过指针实现快速拷贝的方法

    在C#中,由于其安全性特性,通常不鼓励直接使用指针进行操作,因为这可能会引入潜在的安全风险和性能问题。然而,在某些情况下,如内存高效的数据操作或底层硬件交互时,指针的使用是必要的。本文将详细介绍如何在C#...

    指针经典问题解析

    ### 指针经典问题解析 #### 指针的概念及分类 指针是一种特殊的数据类型,用于存储内存地址。理解指针对于编程至关重要,尤其是对于C/C++这样的语言而言。掌握指针需要理解以下几个方面: 1. **指针的类型**:指...

    用指针数组的方法将字符串排序

    以下是对“用指针数组的方法将字符串排序”这一知识点的深入解析。 ### 核心概念 1. **指针数组**:在C语言中,指针数组是一组存储指针的数组,这里的指针指向字符串。每个元素都是一个指向字符数组(即字符串)的...

    数据解析和打包 消息体 消息头

    通常,解析器会有一个解析函数,接收字节流,解析出消息头,然后根据消息头信息解析消息体。在C++中,可以设计为类的成员函数,如下: ```cpp class DataFrameParser { public: void parse(const char* buffer, ...

    VS2008下批量拷贝文件,显示进度条拷贝个数和当前拷贝字节_更新

    在VS2008环境下,这样的任务可以通过编程实现,同时为了提供良好的用户体验,我们还需要实时显示拷贝的进度,包括拷贝的文件个数和当前拷贝的字节数。本知识点将详细介绍如何在VS2008下实现这一功能,并解决拷贝完成...

    VB使用指针adress进行内存拷贝

    - **协议转换**:在处理网络协议时,数据通常以字节流形式存在。使用指针进行内存拷贝,可以直接将原始数据块转换为另一种格式,而无需逐个字节处理。 在提供的文件列表中,可以看到`Module1.bas`和`Form1.frm`...

    重载重写、接口、抽象类、String指针和字符串拼接、异常catch、throw、throws、字符流和字节流

    6. **序列化**:序列化是将对象转换为字节流的过程,便于在网络上传输或存储到文件中。 7. **异常声明**:`throws`关键字用于声明方法可能抛出的异常类型。 8. **finally块**:`finally`块总是会被执行,即使发生...

    C++指针详细解析——史上最精彩指针文章

    标题和描述均提到了"C++指针详细解析",这表明文章主要聚焦于C++语言中的指针概念及其应用。以下是对标题、描述以及部分文本中提到的关键知识点的深入解析: ### C++指针概念 指针是C++中一个核心且强大的特性,它...

    指针与字符串处理

    字符串处理是编程中的一项基础技能,通常指的是对字符串进行拷贝、连接、比较、切割和变换等操作。在嵌入式系统编程、应用编程、网络编程中,对字符串的有效处理尤为关键,因为它们是数据交换和信息表示的常见形式。...

    指针实现整型的高字节和低字节分离以及位置交换

    在深入探讨如何使用C语言中的指针来实现整型数据的高字节和低字节分离及位置交换之前,我们先来明确几个概念。在计算机科学中,一个字节(byte)由8位组成,而整型数据如短整型(short)或整型(int)通常由多个字节...

    求struct各种组合的长度,以及指针、数组、字符串的长度

    `sizeof`一个指针变量会返回这个值: ```c++ int *ptr; printf("Size of pointer: %zu\n", sizeof(ptr)); // 输出4或8 ``` 数组的长度是数组所有元素的总大小。例如,如果你有一个包含10个整数的数组,那么它的...

    C++智能指针实现(包含拷贝构造,赋值函数,引用解引用重载)

    本主题将深入探讨如何实现一个简单的智能指针,包括拷贝构造函数、赋值运算符以及引用和解引用操作符的重载。我们将使用C++标准库中的`std::shared_ptr`作为参考,并在Visual Studio 2019环境下进行编译。 首先,...

    Java中的字节流文件读取教程(一)

    这些方法都是用于读取文件的字节流, skip方法用于跳过n个字节,close方法用于关闭流并释放对应的资源,mark和reset方法用于标志当前流读取位置和重置读取指针。 5. OutputStream和InputStream的相似性 ...

    易语言源码易语言指针到字节集应用源码.rar

    在“易语言源码易语言指针到字节集应用源码.rar”这个压缩包中,我们可以看到一个关于易语言如何处理指针和字节集的应用实例。 首先,我们需要理解“指针”和“字节集”这两个概念。在计算机科学中,指针是内存地址...

    C语言第讲指针与字符串字符数组PPT课件.pptx

    - **赋值方式**:字符指针可以直接用字符串初始化,如`char *ps = "Hello"`,或者后期赋值,如`ps = "Hello"`。而字符数组通常需要通过循环逐个赋值,或者使用`strcpy()`函数进行整体赋值,如`char st[80]; strcpy...

Global site tag (gtag.js) - Google Analytics