Преобразование char * в массив беззнаковых символов C

Я читаю файл, в котором есть данные. Данные неоднородны. Но время от времени может появляться строка с именем файла и значением суммы SHA1. Я читаю данные построчно, а затем, когда есть строка со значением суммы SHA1, я использую strtok, чтобы получить данные в токенах. И я получаю сумму SHA1 в переменной (например, char * hash).

Позже в программе я повторно запускаю SHA1 для того же файла, чтобы получить хеш-сумму (в такой переменной, как unsigned char hash [20]). Теперь я хочу сравнить их со значениями, но не знаю, как к этому подойти. Должен ли я преобразовать массив unsigned char в char * или я должен преобразовать char * в unsigned char? или можно их сравнить без конвертации? И если требуется преобразование, как это преобразование сделать. Я нашел этот sprintf можно использовать для этого, но он не может этого сделать.

РЕДАКТИРОВАТЬ: Я понял, что эта проблема была частью другой моей проблемы. Я разместил этот вопрос здесь с кодом.


person Neo    schedule 02.04.2015    source источник
comment
unsigned char hash[20] не простая переменная, это ARRAY или, другими словами, hash имеет тип unsigned char *.   -  person VolAnd    schedule 02.04.2015
comment
Преобразование из char или unsigned char в указатель unsigned char * некорректно (но возможно), я думаю, вам стоит поговорить о преобразовании из unsigned char в char (возможно) и размещении таких элементов в массиве (указатель адреса на char*).   -  person VolAnd    schedule 02.04.2015
comment
Ваш вопрос будет яснее с образцом кода. Вы спрашиваете, как преобразовать текстовую серию шестнадцатеричных цифр в двоичные данные? (или наоборот)   -  person M.M    schedule 02.04.2015
comment
@MattMcNabb Я обнаружил, что задаю неправильный вопрос. Я разместил еще один вопрос. Не знаю, стоит ли связать это с этим.   -  person Neo    schedule 02.04.2015
comment
@nEO, если этот вопрос больше не актуален в свете другого вопроса, вы можете удалить его   -  person M.M    schedule 02.04.2015