我目前正在制作一个小型C++工具,我对如何处理C++中的字符串感到震惊.这是我第一次需要处理C++,我对使用Java,C#等强类型的托管语言有很多经验,但我对C++字符串感到很生气.
在C++中是否有使用字符串的最佳实践?
很多WIN API函数处理不同类型的"字符串"
tchar,char*,LPWSTR,LPCSTR ......等将每种类型转换为其他类型需要花费大量时间来实现.
在将一种类型转换为另一种类型时,请建议您处理字符串的方式.也许有一些库可供使用?
简短的回答?使用std::string或std::wstring在任何地方,我的建议.
std::string strBuffer = "test";
strBuffer += " ... test";
std::string::size_type nStringSize = strBuffer.size();
const char* pszString = strBuffer.c_str(); // pszString contains
// pointer to memory held
// by STL string and can be
// passed into API calls
Run Code Online (Sandbox Code Playgroud)
您可以轻松地获得一个"C风格"字符串(即一个指向空终止字符数组char*通过.c_str()它可以传递到最WinAPI的功能是.
大多数其他类型的你提到(的tchar,LPWSTR,LPCSTR等)的类型定义与C风格的数组(或指针到C风格的数组或char类型),用于支持Unicode的在多字节字符集.