lstrlen
像很多和字符串有關的 Windows API 一樣,lstrlen
是一個宏,有 ASCII 和 UNICODE 兩個版本:
#ifdef UNICODE
#define lstrlen lstrlenW
#else
#define lstrlen lstrlenA
函數原型:
int lstrlenA(
LPCSTR lpString
);
int lstrlenW(
LPCWSTR lpString
);
函數原型除掉參數類型略有差異以外,其他都是完全一致的。該函數計算給定的字符串的長度,結果不包含結尾的空字符。
參數說明:
lpString
:一個以空字符結束的字符串,函數將檢查該字符串的長度。類型 LPCSTR
是 const 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);