在我的任務(仍然開始:))更好地編程我偶然發現了一些我無法回答的問題。unsigned long(u32_t)轉換爲字符串數組
我的任務是將二進制/十六進制數據(在數組中)轉換爲字符串數組。到目前爲止,我只設法轉換並打印十六進制數據的「MSB」。
這是我目前的代碼。建設性的批評是高度讚賞:)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
unsigned long rawdata[] ={0x60,0x100,'\0'};
char stringForRawdata[250];
char finalString[250];
while(i<2)
{
sprintf(stringForRawdata,"%lx",*(rawdata+i));
//sprintf(finalString,"%s",stringForRawdata);
finalString[i] = *(stringForRawdata);
printf("\nfinalString[%d] = %s",i,finalString+i);
printf("\nrawdata = %lx for i = %d\n",*(rawdata+i),i);
i = i+1;
}
printf("\n stringForRawdata = %s\n",stringForRawdata);
printf("\n\n finalString array is %s\n",finalString);
}
輸入是unsigned long rawdata[] ={0x60,0x100,'\0'};
預期的輸出是一個字符串數組{60,100,\0}
或{0x60,0x100,\0}
的問題是,我只能得到最左邊的數字來我的字符串數組。
如果你想要審查,你應該在代碼審查後發佈。 – this
給我們你期待的輸入和輸出。 – Allan
我編輯了我的帖子^^ – nciacrklo