把字符数组转换成字符串

atpeak 2008-04-29 06:24:37
假设BYTE BUFFER[20]里存放了20个字节的数据。
比如BUFFER里的数据可能是0x3B 0x6F 0x00 0x00 0x56 ……
现在需要把BUFFER里的数据以3B6F000056…的形式打印在屏幕上。
请问怎么用C实现?
谢谢您了!
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baihacker 2008-04-29
  • 打赏
  • 举报
回复
//C++的是这样
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
unsigned char buff[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
for (int i = 0; i < sizeof(buff)/sizeof(unsigned char); ++i)
cout << setfill('0') << setw(2) << hex << uppercase
<< (buff[i] & 0xFF);
return 0;
}
baihacker 2008-04-29
  • 打赏
  • 举报
回复

//刚才看错要求了
#include <stdio.h>

int main()
{
unsigned char buff[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
int i;
for (i = 0; i < sizeof(buff)/sizeof(unsigned char); ++i)
printf("%02X", buff[i]);
return 0;
}
baihacker 2008-04-29
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
unsigned char buff[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
char hex_tb[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char result[256];
int i;
char t;
for (i = 0; i < sizeof(buff)/sizeof(unsigned char); ++i)
result[i*2] = hex_tb[(buff[i]>>4)&0x0f],
result[i*2+1] = hex_tb[buff[i]&0xf];
for (i = 0; i < sizeof(buff)/sizeof(unsigned char)*2; ++i)
printf("%c ", result[i]);
return 0;
}
jieao111 2008-04-29
  • 打赏
  • 举报
回复
飞雪的不符合要求吧,,你不是把数组理的0x,都要去掉吗
atpeak 2008-04-29
  • 打赏
  • 举报
回复
谢谢baihacker飞雪!

现在把问题深入一步,如果要把BUFFER里的数据
unsigned char buff1[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
转换成
unsigned char buff2[] = {'3','B','6','F','0','0',’0','0','5','6'};
应该如何用C实现呢?
baihacker 2008-04-29
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
unsigned char buff[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
int i;
for (i = 0; i < sizeof(buff)/sizeof(unsigned char); ++i)
printf("0X%02X\t", buff[i]);
return 0;
}
baihacker 2008-04-29
  • 打赏
  • 举报
回复
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
unsigned char buff[] = {0x3B, 0x6F, 0x00, 0x00, 0x56};
for (int i = 0; i < sizeof(buff)/sizeof(unsigned char); ++i)
cout << "0x" <<hex << setfill('0') << setw(2)
<< (buff[i] & 0xff) << '\t';
return 0;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧