问题描述
输入无符号字符串数组,然后通过函数转换输出字符串数组
input: unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab}
output:char[12] = {"1232567890ab"}
代码
需要包含头文件<iostream>
、<stdio.h>
。代码演示直接在main函数中转换和封装成函数调用转换两种方式。
#include <iostream>
#include <stdio.h>
using namespace std;
typedef unsigned char BYTE;
//方法一:封装成函数(方便重复使用)
char* ByteOutputByChar(BYTE byData[], int _exdataLen) {
char* temp = (char*)malloc(sizeof(BYTE));
memset(temp, 0, sizeof(BYTE));
char* str = (char*)malloc(_exdataLen * sizeof(BYTE));
memset(str, 0, _exdataLen * sizeof(BYTE));
for (int i = 0; i < _exdataLen; i++)
{
sprintf_s(temp, 1024, "%02x", byData[i]);
strcat_s(str, 1024, temp);
memset(temp, 0, sizeof(temp));
}
return str;
}
int main()
{
BYTE exData[6] = {0x12, 0x32,0x56,0x78,0x90,0xab};
char* temp = (char*)malloc(sizeof(BYTE));
memset(temp, 0, sizeof(BYTE));
char* str = (char*)malloc(3*sizeof(BYTE));
memset(str, 0, 6*sizeof(BYTE));
for (int i = 0; i < sizeof(exData); i++)
{
sprintf_s(temp, 32, "%02x", exData[i]);
strcat_s(str, 32,temp);
memset(temp, 0, sizeof(BYTE));
}
//mian函数内部处理输出
cout << str << endl;
//调用自定义函数ByteOutputByChar输出
char* str1 = ByteOutputByChar(exData, 6);
cout << str1 << endl;
system("PAUSE ");
return 0;
}