在c ++中将initialize初始化为零

时间:2011-11-23 20:40:04

标签: c++ concatenation

有谁知道strncat无法将char初始化为零的原因?代码

int main()
{
uint8 uibuffer[4] = {0};
uint8 txbuffer[10] = "ab";
uint8 rxbuffer[4] = "cde";

strncat((char*)txbuffer,(char*)uibuffer, 4);
strncat((char*)txbuffer,(char*)rxbuffer, 4);
for (int i = 0; i < sizeof(txbuffer); i += 1)
{
    cout << (int(txbuffer[i]))<<" : "<< char(int(txbuffer[i]))<<endl;
}
return 0;
}

现在的输出是

97 : a
98 : b
99 : c
100 : d
101 : e
0 : 
0 : 
0 : 
0 : 
0 : 

所需的输出将是

97 : a
98 : b
0 : 
0 : 
0 : 
0 :    
99 : c
100 : d
101 : e 
0 : 

1 个答案:

答案 0 :(得分:3)

你正在寻找memcpy,C端的字符串是前0个字符。