所以我從字節.img
文件字節讀取如下所示:轉換字節數組字符數組用C
void print_img_section(FILE * f, int start, long int size, char * target_file_name)
{
unsigned char list[size];
fseek(f, start, 0);
if (fread(list, 1, size, f) <= 0) {
fprintf(stderr, "problems reading directory from image\n");
exit(1);
}
}
我想以某種方式比較target_file_name
與list
,看它們是否匹配。然而,list是十六進制值的數組,例如{AB,1E,16},所以我想知道有一種方法可以將list
轉換爲char數組,以便比較這兩個值(或者如果有任何其他方式可以看到這個任務)。
非常感謝您的幫助!
編輯:
SOLUTION感謝:Iharob鋁Asimi
void print_file_name(FILE * f, int start, long int size)
{
unsigned char list[size+1];
char * test = "alphabet_short.txt";
fseek(f, start, 0);
if (fread(list, 1, size, f) <= 0) {
fprintf(stderr, "problems reading directory from image\n");
exit(1);
}
else {
list[size+1] = '\0';
if (strcmp(list, test) == 0) {
fprintf(stdout, "they match!\n");
}
}
}
你的意思是'list'包含一個**字符串**和十六進制表示的字節?如果沒有,這是不明確的:'char'和* byte *在C中是同義詞。 –
'target_file_name'的內容是什麼?它指向什麼?它指向一個單獨的字節數組(類似於'list')還是指向一個字符串? –
首先,歡迎來到#c,我們通常不是一個友好的團隊,對此感到抱歉,並且堅持下去,這是一次美好的體驗:)字節和字符在c中是一樣的。您確定要將char數組「target_file_name」與uchar數組「list」的內容進行比較嗎?此外,沒有什麼是「以十六進制存儲」。 – DusteD