关于字符串转化为asc2码的问题

2025-03-07 11:03:03
推荐回答(4个)
回答1:

#include
#include
using namespace std;
int main() {
char *src_blk[4];
int payload_size = 5;
int input[4];
unsigned char pkt_data[20] = { '5', '2', '9', '8', '4',
'2', '9', '6', '4', '5',
'9', '2', '1', '6', '3',
'7', '2', '6', '8', '1' };
for ( int i=0; i<4; i++ ) {
src_blk[i] = new char[payload_size];
memcpy(src_blk[i], pkt_data+i*5, payload_size);
input[i] =atoi(src_blk[i]);
cout << "src_packet" << i << " " << src_blk[i] < cout << "asc2_packet" << i << " " << input[i] < }
return 0;
}

回答2:

首先纠正一下,ASCII码小于33的不是无法识别,而是ASCII码小于32的的字符为不可打印字符,无法打印!空格的ASCII码是32

可以建立于个二维字符数组存储这些不可打印字符的名称字符串,然后根据输入的ASCII码输出对应的字符串。

回答3:

#include

void main()
{
char pkt_data[21] = { '5', '2', '9', '8', '4',
'2', '9', '6', '4', '5',
'9', '2', '1', '6', '3',
'7', '2', '6', '8', '1' };
printf("%s---------->",pkt_data);
for(int i=0;i<20;i++)
{
printf("%d",pkt_data[i]);
}
printf("\n");
}

VC++ 6.0 环境下调试

回答4:

你的程序没看懂,你直接输出int不行吗?