十六进制数组转换成ASCII码
【摘要】
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h> #define HEX2ASC(a) ((((a)&0xF)>9)?((a)&0xF)-10+'a':((a)...
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
#include <strings.h>
-
-
-
#define HEX2ASC(a) ((((a)&0xF)>9)?((a)&0xF)-10+'a':((a)&0xF)+'0')
-
static void char_array_2_ascii(char *src,size_t src_len,char *str,size_t str_size){
-
size_t i;
-
if(str_size < 2*src_len+1)return;
-
-
for(i=0;i<src_len;i++){
-
*(str+2*i)=HEX2ASC(*(src+i)>>4);
-
*(str+2*i+1)=HEX2ASC(*(src+i)&0xF);
-
}
-
-
*(str+2*i)='\0';
-
}
-
-
int main()
-
{
-
unsigned char buf[]={0x32,0x33,0x34,0x45};
-
char string[50];
-
char_array_2_ascii((char *)buf,sizeof(buf),string,50);
-
printf("%s\r\n",string);
-
}
打印:32333445
文章来源: xintiaobao.blog.csdn.net,作者:心跳包,版权归原作者所有,如需转载,请联系作者。
原文链接:xintiaobao.blog.csdn.net/article/details/102679474
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)