sizeof :取得字符串的字節長度,包含 '/0'。
strlen:取得多字節字符串中字符長度,不包含 '/0'。
wcslen:取得寬字節字符串中字符長度,不包含 '/0'。
tcslen:取得寬字節/多字節字符串中字符長度,不包含 '/0'。
如:
WCHAR wcsStr[] = L"ABCD";
char chrStr[] = "ABCD";
TCHAR tcsStr[] = _T("ABCD");
//寬字符
int wcslen01 = wcslen(wcsStr); //4
int wcslen02 = sizeof wcsStr; //10
//多字節字符
int chrlen01 = strlen(chrStr); //4
int chrlen02 = sizeof chrStr; //5
//多字節字符
int tcslen01 = _tcslen(tcsStr); //4
int tcslen02 = sizeof tcsStr; //5
_tcslen
說明:求Unicode字符串的長度,使用跟非Unicode的strlen一樣
參數:Unicode字符串
返回值:該Unicode字符串長度
lstrlen該函數返回指定字符串的字節長度(ANSI版)或字符長度(雙字節標準版);其中不包括終止NULL字符。
_t開頭的都是VC++定義的宏,用來匹配不同的版本。
如:main在VC++中有_tmain
帶_t的是unicode版本,不帶_t的是單字節版本
strlen是計算字符串長度的,是針對ANSI字符串的,對於UNICODE字符串,計算長度用wcslen來計算。
_tcslen則是一個宏,當定義了_UNICODE時,它被解釋爲wcslen,如果沒有定義_UNICODE時,它被解釋爲strlen。