2010-05-17 16 views
22

Per favore, come posso scoprire la lunghezza di una variabile di tipo wchar_t* in C++?ottenere la lunghezza di `wchar_t *` in C++

codice

esempio qui sotto:

wchar_t* dimObjPrefix = L"retro_"; 

Vorrei scoprire quanti caratteri dimObjPrefix contiene

+0

Intendi un singolo carattere o una stringa? –

+2

Scusate, avrei dovuto renderlo più chiaro. Volevo il numero di personaggi. wcslen sembra fare ciò che voglio in base a http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx Grazie a tusbar. – Jacob

+1

@Jacob: un 'wchar_t' non è una stringa e non ha una lunghezza. Presumo che tu stia chiedendo di 'wchar_t *'. Quegli asterischi non sono solo per lo spettacolo, lo sai. Non possono essere omessi senza cambiare il significato del codice (e la domanda) – jalf

risposta

31
sizeof (wchar_t); 

Edit:

ho appena notato il tag string . Se volete conoscere la dimensione di una stringa wchar_t (wchar_t *), che si desidera utilizzare wcslen(3):

size_t wcslen (const wchar_t *ws); 
+2

Forse sizeof (wchar_t), o wchar_t x seguito da sizeof x? –

+0

@Joseph, mi ci è voluto molto tempo per capire cosa intendevi, ho modificato. Grazie. Dispiace per la confusione. –

+0

Per quanto riguarda sizeof(), né K & R né l'ANSI Razionale danno una spiegazione a questa idiosincrasia delle parentesi; qualche lettore SO capita di saperlo? –

10

Supponendo che si desidera ottenere la lunghezza di null stringa terminata stile C, si hanno due opzioni:

  1. #include <cwchar> e utilizzare std::wcslen (dimObjPrefix);,
  2. o #include <string> e utilizzare std::char_traits<wchar_t>::length (dimObjPrefix);.
Problemi correlati