有谁知道为什么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 :

最佳答案

您要查找memcpy,C中的字符串以前0个字符结尾。

关于c++ - 在C++中将初始化变量连接为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8248748/

10-13 06:04