2010-05-17 38 views
22

请问,如何才能找出在C++中的wchar_t*类型变量的长度?在C++中获得`wchar_t *`的长度

代码下面的例子:

wchar_t* dimObjPrefix = L"retro_"; 

我想找出dimObjPrefix多少个字包含

+0

你是指单个字符还是字符串? – 2010-05-17 23:25:47

+2

对不起,我应该更清楚一点。我想要的字符数。根据http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx wcslen似乎做我想要的东西感谢tusbar。 – Jacob 2010-05-17 23:39:52

+1

@Jacob:'wchar_t'不是一个字符串,它没有长度。我假设你问的是'wchar_t *'。你知道,这些星号不只是表演。他们不能被忽略而不改变代码的含义(和问题) – jalf 2010-05-18 02:29:48

回答

31
sizeof (wchar_t); 

编辑:

我只注意到了string标签。如果你想知道一个wchar_twchar_t *)的大小,要使用wcslen(3)

size_t wcslen (const wchar_t *ws); 
+2

也许sizeof(wchar_t)或wchar_t x后跟sizeof x? – 2010-05-17 23:24:29

+0

@约瑟夫,我花了很长时间才意识到你的意思,我编辑过。谢谢。对困惑感到抱歉。 – 2010-05-17 23:35:37

+0

关于sizeof(),K&R和ANSI Rationale都没有给出关于括号的这种特性的任何理由;是否有任何SO读者知道? – 2010-05-18 02:04:16

10

假设你想终止的C风格的字符串,你有两个选择空的长度:

  1. #include <cwchar>并使用std::wcslen (dimObjPrefix);
  2. #include <string>并使用std::char_traits<wchar_t>::length (dimObjPrefix);