我对C编程有疑问。 我有一个循环,我在每次迭代生成一个新的字符。每个生成的炭我要附加到一个字符串(字符*) 这是我的代码:复制char到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的使用字符*。所以我试图复制我想追加到一个新的指针字符的内容。 我可能做错了......我不是很有经验。 谢谢
strtol的原因: 我有一个char *味精,它包含一个hexa数字。我想处理这个hexa数字,但是当我尝试做例如移位时(< < 16)将移位16位(乘以2^16)十六进制字符的十进制ASCII值,而不是移动字符本身。 因此,我将hexa编号转换为一个字符,这样当我尝试移动它时,它将移动正确的值。我知道它很奇怪。 Cann你能帮我拿出更好的?
unsigned char *octets0"3F214365876616AB15387D5D59";
crc ^= ((*octets++) << 16);
'char *'不是一个字符串。它是一个指向字符串的指针。 **指针和数组是不一样的**(请阅读[c-faq](http://c-faq.com/)的第6部分)。一个字符串是一个有一定长度的char数组。 – pmg