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