【发布时间】:2011-09-06 07:34:37
【问题描述】:
我有一个关于 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 使用 char*。所以我试图复制我想附加到新指针的字符的内容。 我可能做错了什么......我不是很有经验。 谢谢
strtol 的原因: 我有一个 char* msg,它包含一个十六进制数。我想处理该十六进制数,但是当我尝试执行例如移位 (
unsigned char *octets0"3F214365876616AB15387D5D59";
crc ^= ((*octets++) << 16);
【问题讨论】:
-
A
char*不是字符串。它是一个指向字符串的指针。 指针和数组不一样(阅读the c-faq 的第6 节)。字符串是具有一定长度的 char 数组。
标签: c string pointers copy char