2010-05-17 2845 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);