-
lstrcpyn
鎖定
lstrcpyn該函數把第二個參數指定的字符串複製到第一個參數指定的字符串,第三個參數指定複製的長度
- 外文名
- lstrcpyn
- 參數個數
- 3個
- 要 求
- 緩衝區指向夠大以包含結束符
- 作 用
- 第三個參數指定複製的長度
lstrcpyn函數語法
LPTSTR lstrcpyn( __out LPTSTR lpString1, __in LPCTSTR lpString2, __in int iMaxLength);
lstrcpyn參數
lpString1 :指向一個緩衝區,以存儲第二參數的內容。需足夠長以容納第三參數設定的TCHAR值,以及NULL結束符“\0”;
lpString2 :指向以NULL結尾"\0"的字符串;
iMaxLength :指定從第二參數複製至第一參數內容的大小,包括NULL結束符"\0"(謹記bytes字節數對應ANSI 版本以及WCHAR值對應Unicode版本)。
lstrcpyn返回值
該函數返回指向緩衝區的指針(即使源字符串長於第三參數所指定長度,函數succeed)。
如果失敗,返回NULL,lpString1不以空字符串"\0"結束。
lstrcpyn注意
lstrcpyn安全警告
第一參數如果過小,會導致緩存溢出;如果是Unicode版本,sizeof()返回的是字節數,而不是WCHAR,這就會導致緩存區溢出;緩存溢出可能導致嚴重問題。考慮使用 sizeof(szString1)/sizeof(szString1[0])得到適當的大小。
(可以考慮使用 StringCchCopy 函數代替)
lstrcpyn備註
緩衝區指向必須足夠大以包含結束符;實例:
TCHAR chBuffer[512]; lstrcpyn(chBuffer, "abcdefghijklmnop", 4);
此例結果為“abc”以及一個空結束符被複制至chBuffer。
(第一次對照MSDN Help翻譯,難免有錯,請多包涵指正,謝謝)
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: JD萤火虫003