相关文章推荐
大方的香烟  ·  JavaScript Array ...·  1 月前    · 
跑龙套的单杠  ·  分享6个对象数组去重的方法开发者社区·  1 月前    · 
刚失恋的黄瓜  ·  为什么C数组下标从0开始,而不是从1开始_c ...·  1 月前    · 
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组·  1 月前    · 
道上混的创口贴  ·  Array.prototype.some() ...·  2 周前    · 
求醉的冲锋衣  ·  《天龙八部》剧组首亮相,当年刘亦菲、刘涛、蒋 ...·  9 月前    · 
腹黑的企鹅  ·  福州市人力资源和社会保障局关于同意确认陈俊等 ...·  1 年前    · 
大方的炒饭  ·  非裔美国人死亡率降低 预期寿命仍少于白人-新华网·  1 年前    · 
乖乖的蘑菇  ·  漫画|官方在线漫画全集-快看漫画·  2 年前    · 
温暖的生菜  ·  温州大学·  2 年前    · 
Code  ›  C 语言中将uint8_t 的数组怎么转成char 数组? -
char 数组
https://segmentfault.com/q/1010000043833898
暴走的柿子
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. c
  4. 问答详情

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

头像
unme2xgx
27 11
发布于
5 月 26 日
浙江
更新于
5 月 27 日

老师们好,
请教一下把下面的数组转成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

阅读 933
2 个回答
得票 最新
头像
Robot5
17 2
发布于
5 月 27 日
甘肃
✓ 已被采纳

要将给定的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]);
头像
乔治
9.3k 1 1 23
发布于
5 月 26 日
上海
#include <stdio.h>
#include <stdint.h>
int main() {
    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 char_array[32];
    for(int i = 0; i < 32; i++) {
        char_array[i] = (char)out[i];
    // 打印转换后的char数组
 
推荐文章
大方的香烟  ·  JavaScript Array filter() 方法 |
1 月前
跑龙套的单杠  ·  分享6个对象数组去重的方法开发者社区
1 月前
刚失恋的黄瓜  ·  为什么C数组下标从0开始,而不是从1开始_c语言数组从0开始还是从1开始
1 月前
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组
1 月前
道上混的创口贴  ·  Array.prototype.some() - JavaScript | MDN
2 周前
求醉的冲锋衣  ·  《天龙八部》剧组首亮相,当年刘亦菲、刘涛、蒋欣都是青涩的模样_哔哩哔哩_bilibili
9 月前
腹黑的企鹅  ·  福州市人力资源和社会保障局关于同意确认陈俊等409位同志卫生系列副高级及基层卫生副高级专业技术职务任职资格的通知_人事人才_福州市人力资源和社会保障局
1 年前
大方的炒饭  ·  非裔美国人死亡率降低 预期寿命仍少于白人-新华网
1 年前
乖乖的蘑菇  ·  漫画|官方在线漫画全集-快看漫画
2 年前
温暖的生菜  ·  温州大学
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号