c语言把几个数组的数据连接起来

unsigned long a[4];为无符号长整型数组,个数 4,实际占用字节4*4=16
unsigned char b[16];为一字符数组,16字节
都是128比特,用16进制表示,比如a[0]=0x12345678;a[1]=0x87654321;a[2]=0xabcdefgh;a[3]=0xhgfedcba;
现想要把数组a的值都给b,即让b=0x1234567887654321abcdefghhgfedcba;
该用什么函数?尽量不用指针吧
本人初学,望指教~多谢!

第1个回答  2013-10-17
#include<stdio.h>
int main(){
    unsigned long a[4]={0x232323, 0x232323, 0x232323, 0x232323};//字符'#'的ASCII码为0x23
    char b[16];
    char *p=(char *)a;
    int i;
    for(i=0; i<16; i++){
        b[i]=*(p+i);
        putchar(b[i]);
    }
    return 0;
}

第2个回答  2013-10-17
#include <stdio.h>
void main()
{
unsigned long a[4]={0x12345678, 0x87654321, 0x23456789, 0x98765432};
   unsigned char b[16]="";
   int j,k;
    int i;
    j = 0;
    for(i=0;i<4;i++){
        for(k=3;k>-1;k--)
            b[j++]=(a[i]>>(k*8))&0xff;
    }
    for(i=0;i<16;i++)
    printf("%x",b[i]);
    return;
}

本回答被提问者采纳
相似回答