2010-05-17 5 views
22

wchar_t*의 변수 길이를 C++로 어떻게 알 수 있습니까? 아래C++에서`wchar_t *`길이 가져 오기

코드 예제 :

wchar_t* dimObjPrefix = L"retro_"; 

내가 dimObjPrefix

+0

단일 문자 또는 문자열을 의미합니까? –

+2

죄송합니다. 분명히해야합니다. 나는 캐릭터의 수를 원했다. wcslen 내가 원하는대로 할 것 같다 http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx 감사 tusbar. – Jacob

+1

@ Jacob :'wchar_t'는 문자열이 아니며 길이가 없습니다. 나는 당신이'wchar_t * '에 대해 물어 본다고 가정합니다. 그 별표는 쇼를위한 것이 아닙니다. 그들은 코드의 의미를 바꾸지 않고 빠뜨릴 수 없습니다. (그리고 질문) – jalf

답변

31
sizeof (wchar_t); 

편집 포함 얼마나 많은 문자를 찾아 싶습니다

가 난 그냥 string 태그를 발견 . 당신이 wchar_t 문자열 (wchar_t *)의 크기를 알고 싶다면, 당신은 wcslen(3)를 사용하려면 :

size_t wcslen (const wchar_t *ws); 
+2

아마도 sizeof (wchar_t) 또는 wchar_t x 다음에 sizeof x? –

+0

@Joseph, 내가 편집 한 것을 의미하는 것을 깨닫는 데 오랜 시간이 걸렸습니다. 고맙습니다. 혼란을 드려 죄송합니다. –

+0

sizeof()와 관련하여 K & R이나 ANSI 이론적 근거는 괄호에 대한이 특이성에 대해 어떠한 이유도 제시하지 않습니다. 어떤 SO 독자도 알지 못합니까? –

10

당신이, 당신은 두 가지 옵션을 C 스타일의 문자열이 널로 종료의 길이를 얻을하려는 가정 :

  1. #include <cwchar>std::wcslen (dimObjPrefix); 사용
  2. 또는 #include <string>std::char_traits<wchar_t>::length (dimObjPrefix);를 사용합니다.
관련 문제