Мой код (ниже) принимает текстовый файл с шестнадцатеричными значениями и преобразует шестнадцатеричное значение в двоичное и печатает. Как я могу изменить это, чтобы моя функция hex_to_binary могла инициализировать строковый массив и добавить преобразованный двоичный код в массив, а затем вернуть массив. Затем я просто хочу напечатать вывод функции hex_to_binary, добавив инструкцию printf в мою основную функцию. Заранее спасибоКак сохранить и вернуть строку в C
#include <stdio.h>
int hex_to_binary(char*);
int main(int argc, char *argv[])
{
FILE *file;
file = fopen(argv[1],"r");
char line[100];
while(!feof(file)){
fgets(line,100,file);
hex_to_binary(line);
}
fclose(file);
getchar();
return 0;
}
int hex_to_binary(char* hex_string)
{
int i=0;
printf("\nEquivalent binary value: ");
while(hex_string[i])
{
switch(hex_string[i])
{
case '0': printf("0000"); break;
case '1': printf("0001"); break;
case '2': printf("0010"); break;
case '3': printf("0011"); break;
case '4': printf("0100"); break;
case '5': printf("0101"); break;
case '6': printf("0110"); break;
case '7': printf("0111"); break;
case '8': printf("1000"); break;
case '9': printf("1001"); break;
case 'A': printf("1010"); break;
case 'B': printf("1011"); break;
case 'C': printf("1100"); break;
case 'D': printf("1101"); break;
case 'E': printf("1110"); break;
case 'F': printf("1111"); break;
case 'a': printf("1010"); break;
case 'b': printf("1011"); break;
case 'c': printf("1100"); break;
case 'd': printf("1101"); break;
case 'e': printf("1110"); break;
case 'f': printf("1111"); break;
}
i++;
}
return 0;
}
Вы не можете вернуться массивы в языке программирования Си. Вы можете вернуть указатель на память, полученную через 'malloc()' или подобную функцию, если это то, что вы хотите. – fuz
Как бы реализовать это в моем коде? извините, что я пришел из фона Python – Landon