C语言:如何将无符号char数组转为字符串

unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab},如何转为:
char[12] = {"1232567890ab"}?
非常感谢!

int main()
{
unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab};
char buffer[20];//维数定义大些
for(int i=0;i<6;i++)
sprintf( buffer+i*2,"%x",src[i]);//格式化输出到buffer,每个unsigned char 转换为字符后占两个位置,%x小写输出,%X大写输出
printf("%s\n",buffer);
return 0;
}追问

非常感谢,学习了!
可否再请教下,如果要转成“2121658709ba”,有没有比较方便的方法?

追答

unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab};
char buffer[20];//维数定义大些
char buffer1[20]={'\0'};
for(int i=0;i<6;i++)
{
sprintf( buffer+i*2,"%x",src[i]);//格式化输出到buffer,每个unsigned char 转换为字符后占两个位置,%x小写输出,%X大写输出
buffer1[i*2]=*(buffer+i*2+1);//处理字符,倒序
buffer1[i*2+1]=*(buffer+i*2);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-29
不对吧 你那个src数组超过下标了追问

char dst[13] = {"1232567890ab"}……
兄弟你很细心啊。。

追答

。。。。。你超了我咋弄 下边那个是对的 采纳下边那个吧

C语言:如何将无符号char数组转为字符串
int main(){ unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab};char buffer[20];\/\/维数定义大些 for(int i=0;i<6;i++)sprintf( buffer+i*2,"%x",src[i]);\/\/格式化输出到buffer,每个unsigned char 转换为字符后占两个位置,%x小写输出,%X大写输出 printf("%s\\n",buf...

64位无符号数数字与字符串互转
首先,需要包含必要的头文件:include include include 然后,在main函数中定义64位无符号数变量tmp和result,以及用于存储字符串的字符数组str_num:uint64_t tmp = 0xffffffffffffffff;uint64_t result = 0;char str_num[128] = {0};使用sprintf函数将64位无符号数转换为字符串:sprintf(str_num...

如何将unsigned char型转换成int型
unsigned char 就是1字节长无符号整型。转整型可以用强制转换:\/\/c, c++ 语言:unsigned char x=0xFF;int k;k = (int) x; \/\/ 强制转换

怎么把char转成int
char转成int的方法:C语言中char类型本身就是整型类数据变量,可以直接赋值给int变量。char占一个字节内存空间,可表示的有符号数为-128~127,无符号数0~255。C语言中字符是按其ascii值进行存储的,如,字母‘a’,其实际存储在内存中的数据为97,只是在输出时,因格式串的不同,表现出来的形式不同...

c语言无符号数怎样转换成有符号数
你可以8首先获得无m符号数,完了a在前面加上u-号不l就可以2了f。就可以2实现有符号数了i嘛。w┠省

用c语言怎么将整数转换成字符串
1.int\/float to string\/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字符串。● gcvt():将浮点...

C语言,用函数调用方式编写程序,将一个无符号数字串转换成其对应的数...
include <stdio.h> include <string.h> int atoi(char *s){ int i,j,value = 0;j=strlen(s);if(j==0) return 0;for(i=0; i<j; i++){ value = value * 10 + s[i]-'0';} return value;} void main(){ char s[10];int n;gets(s);n = atoi(s);printf("%d\\n",...

C语言中的unsigned char数组怎么转成unsigned short数组
是的改成0X3272就可以了 用左移和 按位加:( 0x32 << 16) | 0x72 --- 如果涉及 big_endian 和 little_endian 变化,则互换两个字节即可

C语言 unsigned short 如何相互转 signed char
usc = ca + (char)ucb;printf("%d\\n", usc);getchar();return EXIT_SUCCESS;} 结果是:0, 0, 256, 65280.这道题最难得部分,莫过于你是否理解c语言中的数据类型转换 。有个名词“Inerger Promotion"(整型提升):在算术类型中有这么一种转换,有符号或无符号的char型,short型和Bit-...

C语言中无符号长整型数的输入输出格式是什么
以%开头的都是输出控制符。主要有%d、%u、%ld、%p。1、%d它的意思是按十进制整型数据的实际长度输出。2、%u输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。3、%ld它的意思是输出长整型数据。4、%p 输出变量的内存地址。

相似回答