【发布时间】:2010-11-10 08:57:03
【问题描述】:
我已经用 C++ 编写代码已经有一段时间了,我认为大多数实际使用 C++ 编写代码的人都会同意,最棘手的决定之一是从几乎令人眼花缭乱的可用字符串类型中进行选择。我最喜欢 ATLCstring 的易用性和功能,但想对可用选项进行比较研究。
我已经检查了 SO 并没有找到任何有助于选择正确字符串的内容。有些网站声明了从一个字符串到另一个字符串的转换,但这不是我们想要的。
希望根据专业、性能、可移植性(Windows、Mac、Linux/Unix 等)、易用性/功能、多语言支持(Unicode/MBCS)、缺点(如果有)和任何其他特殊情况。
我列出了到目前为止我遇到的字符串。我相信还会有更多,所以我们稍后可能会对其进行编辑以适应其他选项。请注意,我主要在 Windows 上工作,因此列表反映了相同的情况:
char*std::string- STL 的
basic_string - ATL 的
CString - MFC 的
CString BSTR_bstr_tCComBstr
【问题讨论】:
-
全部使用。无论如何,你最终都会把它们都放在那里,所以不要一开始就挑剔
-
仅在使用 COM 时使用
CComBstr。 -
您可以在混合中添加 ICU 字符串以进行正确的 unicode 处理。
-
使用最适合该任务的方法?我相信他们都有优点和缺点。不过,我在这里注意到的一件事是,任何使用 char* 发布问题的人都会得到至少一个“使用 std::strings 代替”的一揽子答案。这似乎是首选解决方案。
-
@badgerr - 使用最适合该任务的方法?这就是我问这个问题的目的。可能我们都会。谢谢。
标签: c++ visual-studio string visual-c++