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。