C++

2010-05-17 10 views
22

için "wchar_t *" uzunluğunu elde edin Lütfen, C++ 'da wchar_t* türünde bir değişkenin uzunluğunu nasıl bulabilirim? AşağıdaC++

kod örneği:

wchar_t* dimObjPrefix = L"retro_"; 

Ben dimObjPrefix

+0

Tek bir karakter mi yoksa bir dizgeyi mi kastediyorsunuz? –

+2

Özür dilerim, bunu daha net yapmalıydım. Karakterlerin sayısını istedim. wcslen, http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx 'a göre istediğimi yapıyor gibi görünüyor. Teşekkürler tusbar. – Jacob

+1

@Jacob: a 'wchar_t' bir dizgi değildir ve uzunluğu yoktur. 'Wchar_t *' hakkında sorduğunuzu varsayıyorum. Bu yıldızlar sadece gösteri için değil, biliyorsun. Kodun anlamını değiştirmeden dışarıda bırakılamazlar (ve soru) – jalf

cevap

31
sizeof (wchar_t); 

Düzenleme içerir kaç karakter öğrenmek istiyorum:

Sadece string etiketi fark . Bir wchar_t dize (wchar_t *) boyutunu bilmek istiyorsanız, wcslen(3) kullanmak istiyorum:

size_t wcslen (const wchar_t *ws); 
+2

Belki sizeof (wchar_t) veya wchar_t x ve onu takip x x? –

+0

@Joseph, ne demek istediğimi anlayabilmem uzun zaman aldı, ben düzenledim. Teşekkür ederim. Karışıklık için özür dilerim. –

+0

Sizeof() ile ilgili olarak, K & R veya ANSI Gerekçesi, parantez ile ilgili bu özel durum için herhangi bir sebep vermez; SO okuyucunun bildiği bir şey var mı? –

10

Eğer iki seçeneğiniz C tarzı dizesi sonlandırılmış boş uzunluğunu almak istiyorum varsayarsak:

  1. #include <cwchar> ve std::wcslen (dimObjPrefix); kullanın
  2. veya #include <string> ve std::char_traits<wchar_t>::length (dimObjPrefix); kullanın.