Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ASCII字符数组转换为十六进制字符数组_C_Arrays_String - Fatal编程技术网

将ASCII字符数组转换为十六进制字符数组

将ASCII字符数组转换为十六进制字符数组,c,arrays,string,C,Arrays,String,我正在尝试将ASCII字符串转换为十六进制格式的字符串,如下所示: unsigned char output_char[16] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46}; "30313233343536373839414243444546" 这是字符数组:0123456789ABCDEF//Len=16 这应该是输出字符:0x30、0x3

我正在尝试将ASCII字符串转换为十六进制格式的字符串,如下所示:

unsigned char output_char[16] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46};
"30313233343536373839414243444546"
这是字符数组:0123456789ABCDEF//Len=16

这应该是输出字符:0x30、0x31、0x32

我正在尝试这个:

unsigned char* ascii_char;
unsigned char output_char[16];

ascii_char = "0123456789ABCDEF";

int i = 0;

for (i = 0; i < 16; i++)
{    
    sprintf(output_char + i * 2, "%02X", ascii_char[i]);
}
无符号字符输出\u char[16]={0x30、0x31、0x32、0x33、0x34、0x35、0x36、0x37、0x38、0x39、0x41、0x42、0x43、0x44、0x45、0x46}

完全一样

无符号字符输出_char[]=0123456789ABCDEF

给出或获取从有符号字符到无符号字符的转换,以及可以安全忽略的尾随零字节


无需编写循环、调用printf和转换任何内容。

您所做的是获取已存储为十六进制的字符数组,并将其转换为十六进制代码的文本表示形式

在循环结束时,output_char如下所示:

unsigned char output_char[16] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46};
"30313233343536373839414243444546"
或者,如果阵列足够大,可以容纳它,至少会这样,但它只有所需大小的一半。您可以通过写入数组末尾来调用


但是,ascii字符已经是输出字符所需的格式。不需要做任何转换。< /P> C或C++,只选择一种语言。这是很不清楚的,你的问题是什么?@ StAdGueRug我正在寻找响应,它等于等于变量的表达:无符号char OutPuthchar(16)={0x30,0x31,0x32…},但是所期望的响应不是预期的。期望值和期望值之间的区别是什么?因为如果我创建这样一个变量:。。。这个项目运作良好。如果你真的喜欢,那么。。。。好吗?我正在寻找for等于表示变量的响应,如:unsigned char。。。对不起,我不知道你的意思。请填写一份包含期望/预期输出和实际输出的表格。它提供的上下文可能有助于我理解您的问题。可能需要一个循环和printf来获得OP所描述的“这应该是输出字符:0x30、0x31、0x32…”OP说,如果他声明一件事,然后尝试构建另一件事,他的项目就可以正常工作。我们没有理由相信OP知道他想做什么。我相信什么是有效的,而不是OP认为应该有效的。如果你有充分的理由不相信OP提供的代码,我承认,你应该尝试匹配OP描述的目标,即期望的输出。@Yunnosch我不同意。如果OP走错了路,我有义务告诉他哪里出了问题,而不是帮助他沿着错误的道路走得更远。好吧,让我们不同意。没有讽刺,我承认你的解释也是正确的。