[code小心得]strncat with strlen 和 sizeof的差異

大家好  小弟又來嘴砲了



一般strcat 就是把 一個char array 接上另一個char array之後,
當您是使用 strcat時要注意 可以接受的範圍大小,

如果是用strncat 要注意到的是 最後的結束字元 \0

strncat(char_buf1,char_buf2,strlen(char_buf2)-1);

但看情況就得自己再補個結束字元

如果您使用
strncat(char_buf1,char_buf2,sizeof(char_buf2)-1);
可就搞笑了  看編譯器不同可能會有些差異,一般狀況應該是
會變成4-1=3 只會銜接上 char_buf2的3個字元

依照小弟這種懶惰鬼,第一想到是使用 c++的 append 之類的,只要副檔名是cpp的話.


附帶一提在 C 和 C++在
 int szChar = sizeof('a'); 
這個狀況是不同的喔
C會認為是 4 ,C++會認為是 1



以上 給自己留的小記錄一下

下台一鞠躬


留言