请问,如何才能找出在C++中的wchar_t*
类型变量的长度?在C++中获得`wchar_t *`的长度
代码下面的例子:
wchar_t* dimObjPrefix = L"retro_";
我想找出dimObjPrefix
多少个字包含
请问,如何才能找出在C++中的wchar_t*
类型变量的长度?在C++中获得`wchar_t *`的长度
代码下面的例子:
wchar_t* dimObjPrefix = L"retro_";
我想找出dimObjPrefix
多少个字包含
sizeof (wchar_t);
编辑:
我只注意到了string
标签。如果你想知道一个wchar_t
串(wchar_t *
)的大小,要使用wcslen(3)
:
size_t wcslen (const wchar_t *ws);
也许sizeof(wchar_t)或wchar_t x后跟sizeof x? – 2010-05-17 23:24:29
@约瑟夫,我花了很长时间才意识到你的意思,我编辑过。谢谢。对困惑感到抱歉。 – 2010-05-17 23:35:37
关于sizeof(),K&R和ANSI Rationale都没有给出关于括号的这种特性的任何理由;是否有任何SO读者知道? – 2010-05-18 02:04:16
假设你想终止的C风格的字符串,你有两个选择空的长度:
#include <cwchar>
并使用std::wcslen (dimObjPrefix);
,#include <string>
并使用std::char_traits<wchar_t>::length (dimObjPrefix);
。
你是指单个字符还是字符串? – 2010-05-17 23:25:47
对不起,我应该更清楚一点。我想要的字符数。根据http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx wcslen似乎做我想要的东西感谢tusbar。 – Jacob 2010-05-17 23:39:52
@Jacob:'wchar_t'不是一个字符串,它没有长度。我假设你问的是'wchar_t *'。你知道,这些星号不只是表演。他们不能被忽略而不改变代码的含义(和问题) – jalf 2010-05-18 02:29:48