visual c ++中有多少种类型的字符串

时间:2010-12-23 12:40:46

标签: c++ visual-studio-2010 visual-c++

visual c ++中有多少种类型的字符串类。当我经历msdn中心时,我感到很困惑。

我在命名空间系统下找到了这种类型 http://msdn.microsoft.com/en-us/library/system.string(v=VS.71).aspx

然后在标题部分,我找到了字符串标题定义。这似乎与上述不同。有一件事我注意到,这一个属于STL。 (请参阅链接的评论,我不能在同一篇文章中发布两个链接)

通常使用哪一个?我发现很难找到不同的字符串类

提前致谢:)

2 个答案:

答案 0 :(得分:6)

不同的库带有不同的字符串类型:

在普通的旧C中,您将使用char*,C ++标准库提供std::string,它在C ++开发中被广泛使用。 (字符串定义为typedef basic_string<char> string;

Microsoft创建了MFC CString类,它在MFC样式编程中使用(是?),Qt在Qt程序中使用QString。您在System.String中提到的是.net字符串类,它只能在托管代码中使用(带.net)。

如果您是C ++的新手,我建议坚持使用std::string (#include <string>)。它是标准和平台无关的。

答案 1 :(得分:3)

Microsoft代码中常用的字符串类型是char *,wchar_t *,LPSTR,LPTSTR,LPWSTR,LPCSTR,LPCTSTR,LPCWSTR,BSTR,OLESTR,UNICODE_STRING,String,string,wstring,_bstr_t,CString

最后5个是课程。根据您需要使用的API,您可以选择最少转换头痛的那个:

  • std :: string和wstring,标准C ++库
  • System :: String,托管代码的字符串类型
  • _bstr_t,BSTR的包装器,用于COM自动化
  • CString,ATL和MFC库的字符串类型。

使用其他API时,您可能会遇到其他字符串类型。