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。