再次请教:char[] unsigned int 转换

cai123321cai 2011-03-16 03:04:46
char s[] = "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8";
unsigned int a[5]={0};

那我要是分5段放入 a 咋弄啊?
a[0] = 0x86f7e437
a[1] = 0xfaa5a7fc
....

刚才还没弄好就结贴了...
...全文
85 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2011-03-16
  • 打赏
  • 举报
回复
sscanf ("86f7e437","%x",&a[0]);
sscanf ("faa5a7fc","%x",&a[1]);
sscanf ("e15d1ddc","%x",&a[2]);
sscanf ("b9eaeaea","%x",&a[3]);
sscanf ("377667b8","%x",&a[4]);
做个示范,至于怎么把字符串分成5份我就不做了。
cai123321cai 2011-03-16
  • 打赏
  • 举报
回复
恩,多谢,搞定
delphiwcdj 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cai123321cai 的回复:]

麻烦各位抽1分钟时间写2行代码

初学,第一次写代码,理论方面也能理解,

就是不知道怎么写

多谢各位
[/Quote]
类似的问题你变通下就可以了
delphiwcdj 2011-03-16
  • 打赏
  • 举报
回复
这样

#include<cstdio>
#include <cstdlib>

int main(void)
{
char s[] = "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8";
unsigned int a[8]={0};
size_t i = 0, j = 0;
while (i < 8)
sscanf(s+j*5, "%5x", (a+i)),++i,++j;

int cnt =sizeof(s)/(5*sizeof(s[0]));
for (i=0; i<cnt; ++i)
{
printf("0x%x\n",*(a+i));
}

return 0;
}
cai123321cai 2011-03-16
  • 打赏
  • 举报
回复
麻烦各位抽1分钟时间写2行代码

初学,第一次写代码,理论方面也能理解,

就是不知道怎么写

多谢各位
ouyh12345 2011-03-16
  • 打赏
  • 举报
回复
memcpy
無_1024 2011-03-16
  • 打赏
  • 举报
回复
逐个读取字符然后 得到结果 每次读取五个数
cai123321cai 2011-03-16
  • 打赏
  • 举报
回复
小弟初学,

麻烦给些代码
witwolf 2011-03-16
  • 打赏
  • 举报
回复
unsigned int a[5]={0x86f7e437,0xfaa5a7fc,...};
bdmh 2011-03-16
  • 打赏
  • 举报
回复
char数组的总长度除5,平均分给五个数组,有余数的话,可以放到最后一个数组

69,373

社区成员

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

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