C语言 您所在的位置:网站首页 6b16进制 C语言

C语言

2023-09-22 23:12| 来源: 网络整理| 查看: 265

C语言的字符串操作并不像java,Csharp那样提供直接的方法,简单粗暴。所以,在转换的时候往往费力费时,近日做项目正好用到和java程序通讯,java发送过来的数据是十六进制数字组成的字符串,解析的时候颇费心思才算完成,所以,权在此做一笔记,方便以后查看,以及需要帮助的童鞋,当然,有问题欢迎随时交流,一同进步,欧耶!~

一、将数组转换为十六进制同值的字符串

   读取数组中的数字,打印成字符串的时候以2位大写的格式。

int arrayToStr(unsigned char *buf, unsigned int buflen, char *out) { char strBuf[33] = {0}; char pbuf[32]; int i; for(i = 0; i < buflen; i++) { sprintf(pbuf, "%02X", buf[i]); strncat(strBuf, pbuf, 2); } strncpy(out, strBuf, buflen * 2); printf("out = %s\n", out); return buflen * 2; }

二、将十六进制的字符串转换为十六进制数组

第一种方式:下面定义的字符串中的字符只能是0-F的字符,但是不区分大小写的,前面是安装两位为一个数字进行转换,最后一个数字如果还是两位的则正常转换,如果只剩一位的话则在前面补零输出。

int StringToHex(char *str, unsigned char *out, unsigned int *outlen) { char *p = str; char high = 0, low = 0; int tmplen = strlen(p), cnt = 0; tmplen = strlen(p); while(cnt < (tmplen / 2)) { high = ((*p > '9') && ((*p


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有