字符串数组问题

妖妖灵_1 2011-06-08 06:02:10
unsigned char char_num = {"1234567890"}
如何转化成0x12 0x34 0x56 0x78 0x90这样的形式?
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小攻城师 2011-06-08
  • 打赏
  • 举报
回复
看错题目了,害我把十进制转化成十六进制....
#include <stdio.h>
#include <string.h>
int main()
{
char char_num[] = {"1234567890"};
int hex_num[5];
char buf[5];
int i;
for(i = 0; i < 5; i++){
strncpy(buf, char_num+2*i, 2);
strcat(buf, "0x");
sscanf(buf, "%d", &hex_num[i]);
printf("0x%d ", hex_num[i]);
}
return 0;
}

运行结果:
0x12 0x34 0x56 0x78 0x90
小小攻城师 2011-06-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
int main()
{
char char_num[] = {"1234567890"};
int hex_num[5];
char buf[5];
int i;
for(i = 0; i < 5; i++){
strncpy(buf, char_num+2*i, 2);
strcat(buf, "0x");
sscanf(buf, "%x", &hex_num[i]);
printf("0x%d ", hex_num[i]);
}
return 0;
}

运行结果:
0x18 0x52 0x86 0x120 0x144


ryfdizuo 2011-06-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(int argc,char* argv[])
{
unsigned char char_num[] = {"1234567890"};

unsigned char *p = char_num;

unsigned char result[10];

int idx = 0;
while (*p)
{
int temp1 = *p++ - '0';
int temp2 = *p - '0';

result[idx] = temp1*16 + temp2;

++idx;
++p;
}

for (int i=0; i<idx; i++)
printf("%d\n", result[i]);

system("PAUSE");

return 0;
}
18
52
86
120
144
请按任意键继续. . .
妖妖灵_1 2011-06-08
  • 打赏
  • 举报
回复
unsigned char char_num[] = {"1234567890"}
unsigned char hex_num[] = {0x12,0x34,0x56,0x78,0x90}
ryfdizuo 2011-06-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(int argc,char* argv[])
{
unsigned char char_num[] = {"1234567890"};

unsigned char *p = char_num;

char string[50][5];

int idx = 0;
while (*p)
{
sprintf(string[idx], "0x%c%c", p[0], p[1]);

puts(string[idx]);
++idx;
++p;
++p;
}

system("PAUSE");

return 0;
}

0x12
0x34
0x56
0x78
0x90
请按任意键继续. . .
ryfdizuo 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nielong123 的回复:]

unsigned char hex_num = {0x12,0x34,0x56,0x78,0x90}
是这种形式
[/Quote]
这个hex_num就是二维数组了。
妖妖灵_1 2011-06-08
  • 打赏
  • 举报
回复
鸡动了...
妖妖灵_1 2011-06-08
  • 打赏
  • 举报
回复
unsigned char hex_num = {0x12,0x34,0x56,0x78,0x90}
是这种形式
就想叫yoko 2011-06-08
  • 打赏
  • 举报
回复
unsigned char char_num[] = {"1234567890"};
  • 打赏
  • 举报
回复
那就移动指针,每次取两个,然后前面加上0x。。。

妖妖灵_1 2011-06-08
  • 打赏
  • 举报
回复
没人了吗?大神们,你们在哪里

69,369

社区成员

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

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