lstrcpyn

lstrcpyn該函式把第二個參數指定的字元串複製到第一個參數指定的字元串,第三個參數指定複製的長度

基本介紹

  • 外文名:lstrcpyn
  • 參數個數:3個
  • 要求:緩衝區指向夠大以包含結束符
  • 作用:第三個參數指定複製的長度
函式語法,參數,返回值,注意,安全警告:,備註:,

函式語法

LPTSTR lstrcpyn( __out LPTSTR lpString1, __in LPCTSTR lpString2, __in int iMaxLength);

參數

lpString1 :指向一個緩衝區,以存儲第二參數的內容。需足夠長以容納第三參數設定的TCHAR值,以及NULL結束符“\0”;
lpString2 :指向以NULL結尾"\0"的字元串;
iMaxLength :指定從第二參數複製至第一參數內容的大小,包括NULL結束符"\0"(謹記bytes位元組數對應ANSI 版本以及WCHAR值對應Unicode版本)。

返回值

該函式返回指向緩衝區的指針(即使源字元串長於第三參數所指定長度,函式succeed)。
如果失敗,返回NULL,lpString1不以空字元串"\0"結束。

注意

安全警告:

第一參數如果過小,會導致快取溢出;如果是Unicode版本,sizeof()返回的是位元組數,而不是WCHAR,這就會導致快取區溢出;快取溢出可能導致嚴重問題。考慮使用 sizeof(szString1)/sizeof(szString1[0])得到適當的大小。
(可以考慮使用 StringCchCopy 函式代替)

備註:

緩衝區指向必須足夠大以包含結束符;實例:
TCHAR chBuffer[512]; lstrcpyn(chBuffer, "abcdefghijklmnop", 4);
此例結果為“abc”以及一個空結束符被複製至chBuffer。
(第一次對照MSDN Help翻譯,難免有錯,請多包涵指正,謝謝)

相關詞條

熱門詞條

聯絡我們