描述: 
  • 报文转换

  • 报文中如果出现0x7E,转义成为2个字节0x7D 0x5E,如果出现0x7D,转义成为2个字节0x7D 0x5D。最后在报文头尾各加上一个0x7E定界。

  • 示例(每个字节以十六进制数表示)

  • 给定原始报文:1D 2B 3C 4D 5E 7E 6F 7D 7E

  • 转换后的报文:7E 1D 2B 3C 4D 5E 7D 5E 6F 7D 5D 7D 5E 7E

详细描述:

  • 接口说明

原型:

int PktTrans(char* pInput, int iLen, char* pOutput)

输入参数:

char* pInput: 给定的输入报文

int iLen: 给定报文的长度

输出参数:

char* pOutput:转换后的报文

返回值:

int:成功0,失败-1

#include <stdlib.h>
#include "OJ.h"
#include <string>
using namespace std;/*
功能:将给定的报文按规则转换成另一个报文后输出。转换规则如下:报文中如果出现0x7E,转义成为2个字节0x7D 0x5E,如果出现0x7D,转义成为2个字节0x7D 0x5D。最后在报文头尾各加上一个0x7E定界。示例(每个字节以十六进制数表示)给定原始报文:1D 2B 3C 4D 5E 7E 6F 7D 7E转换后的报文:7E 1D 2B 3C 4D 5E 7D 5E 6F 7D 5D 7D 5E 7E输入:
char* pInput: 给定的输入报文,内存空间由调用者申请和释放
int iLen: 给定报文的长度
输出:
char* pOutput:转换后的报文,内存空间由调用者申请和释放
返回:
int: 成功 0, 失败 -1*/int PktTrans(char* pInput, int iLen, char* pOutput)
{if (pInput == NULL || iLen < 0 ||pOutput == NULL){return -1;}/*如果长度为0就不转换,首尾没有必要加0x7e*/if (iLen == 0){return 0;}char temp[200] = {0};int i = 0, j = 0;for( ; i < iLen ; i++){  if (pInput[i] == 0x7E){temp[j] = 0x7D;temp[j + 1] = 0x5E;j += 2;}else if (pInput[i] == 0x7D){temp[j] = 0x7D;temp[j + 1] = 0x5D;j += 2;}else{temp[j] = pInput[i];j++;}}temp[j]='\0';/*首尾加上0x7E*/pOutput[0] = 0x7E;for (i = 0; i < j; i++){pOutput[i + 1] = temp[i];}pOutput[j + 1] = 0x7E;pOutput[j + 2] = '\0';return 0;
}

华为机试题:【中级】报文转换相关推荐

  1. 牛客网华为机试题(JavaScript)

    最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...

  2. 【牛客网】华为机试题(00、C++版本)

    华为机试题,本来以为对一些基础的程序还是有点信心的:不过不练不知道,一练吓一跳.平时虽然也都码程序,但是一到机试题就各种乱七八的不适应.还是要加强一下练习. 1.字符串最后一个单词的长度 题目描述:计 ...

  3. 【牛客网-华为机试题目录】持续更新中

    文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...

  4. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  5. 【华为机试题分析-C/C++】知识点分类总结

    专栏地址:https://blog.csdn.net/super828/category_10825347.html 字符串 [华为机试题分析] 1 字符串最后一个单词的长度 [华为机试题分析] 2 ...

  6. 华为电脑c语言总是错误,关于华为机试题求代码!解决方法

    关于华为机试题求代码!!! n个字符串,1 如n=3 1.what is local bus? 2.this is local bus. 3.local bus is name sdhfj. 那么最长 ...

  7. 华为机试题库+题解【C语言版】

    文章目录 前言 1.字符串最后一个单词的长度[***] 描述 输入描述 输出描述 示例 解题代码 2.计算某字符出现次数[****] 描述 输入描述 输出描述 示例 解题代码 3. 明明的随机数[** ...

  8. 【华为机试题分析】 4 字符串分割

    我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处 [华为机试题分析] 4 字符串分割 #include <stdio.h> ...

  9. 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

    文章目录 2023 年用 Python 语言解华为 OD 机试题,一篇博客找全. 华为 OD 机试题清单(机试题库还在逐日更新) 2023 年用 Python 语言解华为 OD 机试题,一篇博客找全. ...

最新文章

  1. python虚拟环境 windows环境搭建_windows 下搭建python虚拟环境(示例代码)
  2. 使用windows自带远程桌面远程办公
  3. unity 脚本中 调用另一个脚本_Unity 2019.4 脚本生命周期
  4. ZigBee TI ZStack CC2530 3.18 串口01-发送
  5. 判断是否为ie8浏览器
  6. windows下的diskpart指令彻底格式化清除U盘
  7. 顺序三元组 java_hihocoder-1550-顺序三元组
  8. 【script】python3中的docx、win32com和openpyxl模块
  9. 使用Tslib在触摸屏上显示汉字【转】
  10. 【数据结构 严蔚敏版】 链式栈基本操作
  11. 永久短网址生成 可以永久使用的短链接推荐
  12. ORACLE分配DBA权限
  13. mysql等保测评命令_Mysql等保部分加固
  14. 自适应,响应式以及图片的性能优化(响应式图片)
  15. Google Research等机构提出新的AI算法以了解人脑网络中的电刺激效应
  16. 今年晋升本没抱希望,已有绩效更好的同事将参加晋升,leader却临时让我也去答辩,怀疑自己被拉去陪跑,该怎么办?...
  17. 蒙特卡罗模拟赌徒人生
  18. BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition
  19. 如果你是12306网站架构师,你会如何设计网站的软件架构和硬件系统架构?
  20. Django打造大型企业官网-项目实战(三)

热门文章

  1. 使用第三方APPKey授权 跳转登录 QQ
  2. office365邮箱批量添加到指定组
  3. Cloudflare api 设置Firewall rules防止wodpress被爆力破解
  4. mac OSx 打包成dmg文件
  5. 激光雷达+imu_无人驾驶技术入门(四):无人车传感器 IMU 深入剖析
  6. BZOJ [Ahoi2008]Meet 紧急集合
  7. 等不到明天了,office2021专业正式版镜像来了
  8. 方少森:开源运维软件在小米的应用
  9. Glade的简单使用说明+例子(一)
  10. Iure veniam nam impedit.