У меня вопрос к Си-программированию.
У меня есть цикл, где я генерирую на каждой итерации новый символ. Каждый сгенерированный символ, который я хочу добавить в строку (char *)
Это мой код:
char *string[20];
string[0]=0;
for (p = 0; p < length(message) - 1; p = p + 2)
{
...
char cc="";
cc = (char) strtol(pp, pp, 16);
char *tt[2];
tt[0]="";
*tt=(char *)cc;
strcat(string,cc);
}
Я знаю, что strcat использует char *. Поэтому я попытался скопировать содержимое символа, который я хочу добавить к новому указателю.
Я, наверное, сделал что-то не так ... я не очень опытный.
Спасибо
Причина, по которой strtol:
У меня есть символ * msg, который содержит шестнадцатеричное число. Я хочу обработать это шестнадцатеричное число, но когда я пытаюсь сделать, например, сдвиг (<< 16), это сдвигает 16 бит (умножает на 2 ^ 16) десятичное значение ascii шестнадцатеричного символа вместо сдвига самого символа.
Итак, я преобразовал число гекса в символ, так что когда я пытаюсь сделать смещение, оно сместит правильное значение. Я знаю это странно.
Можете ли вы помочь мне придумать что-то лучше? </p>
unsigned char *octets0"3F214365876616AB15387D5D59";
crc ^= ((*octets++) << 16);