#独家
C 语言中将uint8_t 的数组怎么转成char 数组?

2023-05-28 0 2,696

老师们好,
请教一下把下面的数组转成char 数组 怎么转?

 uint8_t out[32] = {
    0x4d, 0xce, 0x9b, 0x87, 0x6d, 0x6f, 0x1b, 0x24, 0x53, 0xcf, 0x0c, 0xa3, 0x6d,       0xc5, 0xc9, 0x05, 0xed, 0x9a, 0xee, 0xd7, 0x82, 0x18, 0xfd, 0x35, 0xb9, 0x8a,     0x58, 0x2c, 0xae, 0x44, 0x73, 0x15
};

或者将上面的数组输出到文件中. 如下面的格式:
4dce9b876d6f1b2453cf0ca36dc5c905ed9aeed78218fd35b98a582cae447315

要将给定的uint8_t数组转换为char数组,可以使用类型转换操作符或循环逐个复制数组元素。下面是两种方法的示例代码:

方法一:使用类型转换操作符

uint8_t out[32] = {0x4d, 0xce, 0x9b, 0x87, 0x6d, 0x6f, 0x1b, 0x24, 0x53, 0xcf, 0x0c, 0xa3, 0x6d, 0xc5, 0xc9, 0x05, 0xed, 0x9a, 0xee, 0xd7, 0x82, 0x18, 0xfd, 0x35, 0xb9, 0x8a, 0x58, 0x2c, 0xae, 0x44, 0x73, 0x15};

char charArray[64]; // 32字节的uint8_t数组转换为64字节的char数组

for (int i = 0; i < 32; i++) {
    charArray[2 * i] = (out[i] >> 4) < 10 ? (out[i] >> 4) + '0' : (out[i] >> 4) - 10 + 'a';
    charArray[2 * i + 1] = (out[i] & 0x0f) < 10 ? (out[i] & 0x0f) + '0' : (out[i] & 0x0f) - 10 + 'a';
}

// 输出char数组
for (int i = 0; i < 64; i++) {
    printf("%c", charArray[i]);
}

方法二:使用循环逐个复制元素

uint8_t out[32] = {0x4d, 0xce, 0x9b, 0x87, 0x6d, 0x6f, 0x1b, 0x24, 0x53, 0xcf, 0x0c, 0xa3, 0x6d, 0xc5, 0xc9, 0x05, 0xed, 0x9a, 0xee, 0xd7, 0x82, 0x18, 0xfd, 0x35, 0xb9, 0x8a, 0x58, 0x2c, 0xae, 0x44, 0x73, 0x15};

char charArray[64]; // 32字节的uint8_t数组转换为64字节的char数组

for (int i = 0; i < 32; i++) {
    snprintf(&charArray[2 * i], 3, "%02x", out[i]);
}

// 输出char数组
for (int i = 0; i < 64; i++) {
    printf("%c", charArray[i]);
}
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 C 语言中将uint8_t 的数组怎么转成char 数组? https://www.jkxiazai.com/1747.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务