Proszę, w jaki sposób mogę znaleźć długość zmiennej typu wchar_t*
w języku C++?uzyskać długość `wchar_t *` w C++
przykład kodu poniżej:
wchar_t* dimObjPrefix = L"retro_";
Chciałbym dowiedzieć się, ile znaków dimObjPrefix
zawiera
Proszę, w jaki sposób mogę znaleźć długość zmiennej typu wchar_t*
w języku C++?uzyskać długość `wchar_t *` w C++
przykład kodu poniżej:
wchar_t* dimObjPrefix = L"retro_";
Chciałbym dowiedzieć się, ile znaków dimObjPrefix
zawiera
sizeof (wchar_t);
Edit:
Właśnie zauważyłem tag string
. Jeśli chcesz wiedzieć, rozmiaru wchar_t
ciąg (wchar_t *
), którego chcesz użyć wcslen(3)
:
size_t wcslen (const wchar_t *ws);
Być może sizeof (wchar_t), lub wchar_t x, po którym następuje sizeof x? –
@Joseph, zajęło mi dużo czasu, aby zrozumieć, co masz na myśli, redagowałem. Dziękuję Ci. Przepraszam za zamieszanie. –
Odnośnie sizeof(), ani K & R, ani ANSI Rationale nie podają przyczyny tej idiosynkrazji o nawiasach; Czy ktokolwiek zna się na czytniku SO? –
Zakładając, że chcesz uzyskać długość NUL C stylu ciąg, masz dwie opcje:
#include <cwchar>
i używać std::wcslen (dimObjPrefix);
,#include <string>
i używać std::char_traits<wchar_t>::length (dimObjPrefix);
.
Masz na myśli jeden znak lub ciąg? –
Przepraszam, powinienem był to wyjaśnić. Chciałem liczbę znaków. wcslen wydaje się robić to, co chcę, zgodnie z http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx Dzięki tusbar. – Jacob
@Jacob: 'wchar_t' nie jest łańcuchem i nie ma długości. Zakładam, że pytasz o 'wchar_t *'. Te gwiazdki to nie tylko show, wiesz. Nie można ich pominąć, nie zmieniając znaczenia kodu (i pytania) – jalf