Win32 API (2) lstrlen

lstrlen

像很多和字符串有關的 Windows API 一樣,lstrlen 是一個宏,有 ASCII 和 UNICODE 兩個版本:

#ifdef UNICODE
#define lstrlen  lstrlenW
#else
#define lstrlen  lstrlenA
函數原型:
int lstrlenA(
  LPCSTR lpString
);
int lstrlenW(
  LPCWSTR lpString
);

函數原型除掉參數類型略有差異以外,其他都是完全一致的。該函數計算給定的字符串的長度,結果不包含結尾的空字符。

參數說明:

lpString :一個以空字符結束的字符串,函數將檢查該字符串的長度。類型 LPCSTRconst char * ,而類型 LPCWSTR 本質上就是 const wchar_t *

返回值說明:

函數返回字符串的長度(包含字符的個數),當參數字符串是 NULL,則函數返回 0。

依賴信息:
名稱
Header winbase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

lstrlen 函數是 Windows API ,在C標準庫中也定義了功能類似的兩個函數,分別對應普通字符和寬字符版本:

//等價於 lstrlenA
size_t strlen( const char *str );
//等價於 lstrlenW
size_t wcslen( const wchar_t *str );

還有兩個相應的安全版本,可以指定需要檢查的最長字符數。當檢查了給定個數的字符以後,如果還是沒有碰到空字符則函數返回給定的長度,這個特性往往用於不信任的數據的檢查:

//字節串
size_t strnlen_s( const char *str, size_t strsz );
//寬字符
size_t wcsnlen_s(const wchar_t *str, size_t strsz);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章