大家好 小弟又來嘴砲了
一般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
以上 給自己留的小記錄一下
下台一鞠躬
一般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
以上 給自己留的小記錄一下
下台一鞠躬
留言