我對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