CString dönüştürmek için nasıl ::std::string ::std::wstring birbirine?
CString
std::string
STL konteynırı ile daha uyumlu olsa da oldukça kullanışlı.
hash_map
kullanıyorum. Ancak, hash_map
destek anahtar CString
değil, std::string
CString
dönüştürmek istiyorum.
CString
karma bir fonksiyon yazmak çok zaman alacak gibi görünüyor.
CString -----> std::string
Bunu nasıl yapabilirim?
std::string -----> CString:
inline CString toCString(std::string const& str)
{
return CString(str.c_str());
}
Haksız mıyım?
DÜZENLEME:
İşte bir soru daha
Nasıl birbirlerine wstring
, CString
dönüştürebilir miyim?
//wstring -> CString,
std::wstring src;
CString result(src.c_str());
//CString->wstring.
CString src;
::std::wstring des(src.GetString());
Yokherhangi birsorun?
Nasıl birbirlerine std::wstring
, std::string
dönüştürebilir miyim?
CEVAP
50* *göre:
CString
std::string
:
CString cs("Hello");
std::string s((LPCTSTR)cs);
AMA:std::string
LPCTSTR
bir yapı olamaz. yani kod UNİCODE yapılar için başarısız olur.
std::string
27* / LPCSTR
*VC 7 kullanan bir programcı sadece inşa edebilir.x ya da daha iyi bir aracı olarak CT2CA
gibi dönüşüm sınıfları kullanabilir.
CString cs ("Hello");
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cs);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);
std::string
to CString
: (Visual Studio's CString FAQs...)
std::string s("Hello");
CString cs(s.c_str());
CStringT
veya geniş karakter karakter dizeleri inşa edebilir. yaniwchar_t*
(LPWSTR
) char*
(yani LPSTR
) veya dönüştürebilirsiniz.
Diğer bir deyişle, char-ihtisas (CStringT
) yani CStringA
, wchar_t
-specilization CStringW
TCHAR
-uzmanlık CString
olabilir inşa ya char
veya geniş karakter,sonlandırıldı null (boş sonlandırma burada çok önemlidir)dize kaynakları.
IInspectable olarak adlandırılan ıslah "boş sonlandırma" bölümü in the comments:
NULL sonlandırma gerekmez.
CStringT
açık uzunluğu argüman dönüşüm kurucular vardır. Bu daNUL
karakterler gömülüstd::string
nesneleriCStringT
nesneleri oluşturmak anlamına gelir.
Dönüştürmek için nasıl bir std::string...
Nasıl string bir dizi nesne dizisi dön...
Nasıl Boolean Nesnesine String nesnesi...
Set dönüştürmek için nasıl<Dize>...
QString std dönüştürmek için nasıl::st...