我们需要处理一个16进制格式的报文,其中第一个字节表示报文长度(包括该字节本身)。当报文中的字节值为 0x0A
时,需要将其转义为 0x12 0x34
;当报文中的字节值为 0x0B
时,需要转义为 0xAB 0xCD
。其他字节保持不变。最终输出转义后的报文,其中第一个字节为转义后报文的长度。
输入处理
报文的第一个字节表示报文的长度,但该字节不参与转义,我们需要根据该长度读取报文中的各个字节。
转义规则
说明:实现报文转义功能,报文中如果出现 0×0A ,转义成为 2 个字节 0×12 0×34 ,如果出现 0×0B 转义成为 2 个字节 0×AB 0×CD ,其他报文字节保持不变
1、输入的报文为 16 进制,输入报文长度不超过 127 ,输入的报文第一个字节为报文长度,第一个字节(报文长度)算正式报文的一部分,但是不参与转义
2、输入的报文每个字节用空格隔开
1、输出为转义后的报文,转义后的报文长度也不超过 255 ,输出的报文第一个字节算正式报文的一部分,为转义后的报文长度
2、输出的报文内容都为大写的 16 进制,输出报文为 16 进制,前不带 0× 前缀
3、输出的报文每个字节用空格隔开
输入
8 1 2 3 4 5 6 A
输出
9 1 2 3 4 5 6 12 34
说明
输入报文 8 1 2 3 4 5 6 A 解释: 8 为报文长度
输出报文 9 1 2 3 4 5 6 12 34 解释: 9 为输出报文长度,12 34 为输入报文中的 A 转义后的报文