c语言字节数组转化成字符串,C语言 字节数组转为字符串

本文章适用场景:

#include int main(void)

{

printf("\tmain enter \n");

char* test1[128] = {0x11,0x22,0x33,0x44,0x55};

printf("111 test1: %s\n",test1);

printf("222 test1: %.2x %.2x %.2x %.2x %.2x\n", test1[0],test1[1],test1[2],test1[3],test1[4]);

return 0;

}

编译命令:gcc test.c -o test

编译后执行结果:

6d474eb151e3a681462bd8e6567a8810.png

我们发现自己数组test1无法用%s方式打印,如果想把字节数组转发为字符串可以用%s方式输出,利用如下代码即可。

话不多说贴代码:

int main(void)

{

unsigned char src[6] = { 0x12, 0x00, 0x56, 0x78, 0x90, 0xab };

char s[13] = { 0 }; //注意字符串申请的空间,以防越界,无论使用实体数组还是动态申请malloc方式,空间应该为字节数组长度*2+1

int i;

char c1, c2;

for (i = 0; i < 6; i++)

{

c1 = src[i] & 0xFu;

c2 = (src[i] >> 4) & 0xFu;

sprintf(s + i * 2, "%x%x", c2, c1);

}

printf("!! %s\n",s);

printf("len %d\n",strlen(s));

return 0;

}

//1200567890ab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值