使用strncpy需要注意的地方

2021-06-18 19:26:31 字數 878 閱讀 2317

功能:(c/c++)複製src中的內容(字元,數字、漢字....)到dest,複製多少由num的值決定,返回指向dest的指標。如果遇到null字元('\0'),且還沒有到num個字元時,就用(num - n)(n是遇到null字元前已經有的非null字元個數)個null字元附加到destination。注意:並不是新增到destination的最後,而是緊跟著由source中複製而來的字元後面。

綜上,一般情況下,使用strncpy時,建議將n置為dest串長度(除非你將多個src串都複製到dest

陣列,並且從dest尾部反向操作),複製完畢後,為保險起見,將dest串最後一字元置null

例: char *pszservermsg = new char[nfilesize+1];

memset(pszservermsg,0,nfilesize + 1);

……(pszservermsg的賦值)

pszservermsg[nfilesize] = null;

strncpy是不會幫你在目標字串後面加0的,

所以用完strncpy不手動在後面加零的話,就會出錯,一定要注意。

加零的方法有2個,

一是拷貝前,用zeromemory()把整個緩衝區置0。

二是計算好字串的實際長度,手動加0。

對於第二種方法,

看到別人寫的乙個函式對

strncpy函式

封裝,這樣覺得不錯,記下。

char *safe_strncpy(char *dst, const char *src, size_t size)

C 使用localtime函式需要注意的地方

cpp include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localtime自己控制的,所以如果連續呼叫這個函式會有問題。很多時候我們會同時處理兩...

C 使用localtime函式需要注意的地方

cpp view plain copy include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localtime自己控制的,所以如果 連續呼叫這個函式...

C 使用localtime函式需要注意的地方

在處理時間時用到了localtime這個函式,將乙個utc時間轉為本地時間 cpp include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localt...