инвертирующая функция (от символа до шестнадцатеричной строки)

-4

Мне нужно инвертировать эту функцию, которую она использовала для скрытых строк, представляющих шестнадцатеричные значения, для представления символов

char * extochar(char * in, int inLen){
int i,k;
int resInt[inLen/2];
char * resChar=malloc(inLen/2);

k=0;
for(i=0; i<inLen/2; i=i++){
resInt[k]=chartoint(in[i*2])<<4;
resInt[k]+=chartoint(in[(i*2)+1]);
k++;
}

for(k=0; k<inLen/2;k++){
resChar[k]=(char)resInt[k];
}
return resChar;
}

Примечание. Допустимый ввод - это только строки, состоящие из 1234567890abcdef и их длины. Я могу инвертировать второй для cicle (довольно просто), но не первый!

спросил(а) 2011-08-10T19:19:00+04:00 9 лет, 2 месяца назад
0
99

Получите указатель на вашу память, которую вы хотите представить в шестнадцатеричной форме. Выделите буфер char [] для результата строки.

Вызовите sprintf с форматированием:

sprintf(stringBufferPtr, "%02hxx", charToTranslatePtr)

Вы можете использовать некоторую базовую арифметику указателя для циклического перехода через stringbufferptr/chartotranslateptr, чтобы делать несколько символов одновременно, если вы конвертируете uint64_t или что-то еще.

ответил(а) 2011-08-10T19:27:00+04:00 9 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема