объединить инициализировать переменную в ноль в C ++ - PullRequest
0 голосов
/ 24 ноября 2011

Кто-нибудь знает причину, по которой 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 Ответ

3 голосов
/ 24 ноября 2011

Вы ищете memcpy , строки в C заканчиваются на первые 0 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...