string,CString,QString之间有什么区别?

时间:2013-11-25 03:13:21

标签: c++ string visual-c++

我在MFC中看到“CString”,在QT中看到“QString”。 string,CString,QString之间有什么区别? 为什么不直接使用“string”?

2 个答案:

答案 0 :(得分:2)

它们在字符串类型上有不同的变化。

std::string是ISO标准中的一个,在您想要可移植性的情况下可能是首选。它必须由声称符合标准的所有实现提供。

正如您所说,

CString来自MFC(记录为here),通常只能在该环境中使用。如果您只为Windows编程,则可以使用它。它可能具有std::string未提供的额外功能。

同样,QString是Qt变体,记录为here,用于表示使用Qt的程序中的字符串。与CString一样,它与环境的关系更紧密,因此可以提供超过std::string的效率。

答案 1 :(得分:2)

环顾四周(基本上为你做研究)我发现了一些东西。

String:不支持字符编码,与其他编码没有特殊功能(。)
QString:大量有用的功能,一些更好的兼容性,支持字符编码,默认UTF-16(。)
CString:大量有用的功能,一些更好的兼容性,以及适用于Unicode和Ascii编译(..),...

此处还有一些未提及的内容,来源是

http://blog.rburchell.com/2010/08/strings-and-qt.html
.. http://forums.codeguru.com/showthread.php?319932-CString-vs-std-string
......其他地方 ....为了更好地利用自己的框架而工作

我希望我能提供帮助,因为这是我的第一篇文章。