如何在C ++中使用字符串肯定有很多方法:char*
,w_char*
,CString
,std::string
,然后是某些类型的定义,如LPTSTR
等除了经验丰富的C ++程序员之外,没有其他人能够理解的字母排列。
我记得读过一篇文章(很久以前),作者在处理字符串时批评了C ++的不一致性。他在C ++中给出了确切数量的各种字符串类型。我想要找到这篇文章,或者其他一些提供C ++中可用的字符串类型的引用。
因为很明显,任何时候都可以创建另一个typedef,问题是: 目前在C ++中已知的常用字符串类型数的最高下限是多少?
答案 0 :(得分:1)
C ++中存在多少种字符串类型?
语言中定义了三种字符串类型(请参阅Wikipedia):
std::string
(basic_string<char>
的typedef)std::wstring
(basic_string<wchar_t>
的typedef)basic_string
(课程模板) char *
不是字符串。它是指向char
的指针。
w_char*
不是字符串。它是指向w_char
的指针。
CString
未在语言中定义。
当然,我可以创建自己的类似字符串的类型:CCoolString
。当你附加's'时,它会被存储为'z'。但它不是语言本身的一部分 - 它只是我的代码。在内部,它将使用std::string
。
目前C ++中已知的常用字符串类型数量的下限是多少?
不是一个真正的问题。它无法回答,因为它取决于用户。
答案 1 :(得分:0)
C ++中没有默认的字符串类型。使用char *和w_char *可以创建他/她想要的任何数量的字符串。 std :: string,CString和LPTSTR都是不同库的一部分,我不确定它们是否是标准的一部分。 (他们可能是,也可能不是)。 您可以创建自己的MarekString,它也可以是字符串类型。 并且因为C ++实际上是不一致的,即使我记得Joel Spolsky提出的一个建议,使其成为默认数据类型。
P.S。你忘了char []和w_char [],它们与那些*对应物略有不同。