Guten Morgen Community
Ich mach gerade meine ersten gehversuche in C/C++.
Ich möchte die wahre Länge (Variabale size_t sT2) des wchar_t-Strings von der Klasse aus übergeben. Das funktioniert aber so wie ich das mache nicht.
Auch prüfe ich zu einem späteren Zeitpunkt mit einer For-Schleife jedes einzelne Zeichen im 'wchar-_t-String' und brauche dazu die reale Länge.
Auf was muss ich hier den achten?
Besitze MS Visual C++ 2010 Express. Windows Vista-32.
Danke für die Hilfe.
Freundliche Grüsse
exc-jdbi
Ich mach gerade meine ersten gehversuche in C/C++.
Ich möchte die wahre Länge (Variabale size_t sT2) des wchar_t-Strings von der Klasse aus übergeben. Das funktioniert aber so wie ich das mache nicht.
Auch prüfe ich zu einem späteren Zeitpunkt mit einer For-Schleife jedes einzelne Zeichen im 'wchar-_t-String' und brauche dazu die reale Länge.
Auf was muss ich hier den achten?
Besitze MS Visual C++ 2010 Express. Windows Vista-32.
Danke für die Hilfe.
Freundliche Grüsse
exc-jdbi
Code:
#include "stdafx.h" #include <iostream> #include <string> #include <Windows.h> class MyClass{ public: static size_t WString2WChar_t(std::wstring *ws, wchar_t *wc); private: }; int _tmain(int argc, _TCHAR* argv[]) { //Irgendein wString std::wstring wSt=L"早上好社区 - Und noch ein paar Sonderzeichen ‰€@©®²³"; size_t s = wSt.length(); //I.O. Hier wird das letzte Zeichen ausgegeben wchar_t w = wSt[s-1]; wchar_t *wCh = L""; size_t sT2 = MyClass::WString2WChar_t(&wSt,wCh); if(sT2>0 || wCh != L""){ //Prüfung //Wenn ich die vorgegebene Länge als Zeichen ausgebe, kommt nicht wie erwartet //das letzte Zeichen, wie es im z.B. wString ist. wchar_t wCh2 =wCh[sT2]; .... //Mit For-Schleife durch jedes einzelne Zeichen For(...){ .... } } return 0; } size_t MyClass::WString2WChar_t(std::wstring *ws,wchar_t *wc){ wc=L""; size_t ret = 0; try{ if((*ws).length()==0) return ret; wc=&(*ws)[0]; return std::wcslen(wc); } catch(std::exception &ex){ std::cout<<"WString2WChar_t: "<<ex.what()<<std::endl; return ret; } }
Comment