代码之家  ›  专栏  ›  技术社区  ›  Marek

C++中存在多少种字符串类型?[关闭]

  •  1
  • Marek  · 技术社区  · 14 年前

    char* , w_char* , CString std::string ,然后一些typedef像 LPTSTR 和其他排列的信件,除了经验丰富的C++程序员之外,没有人能理解。

    我记得读过一篇文章(很久以前),作者在批评C++时处理字符串时的不一致性。他给出了C++中各种字符串类型的确切数目。我想找到这篇文章,或其他引用,提供了一些字符串类型在C++中可用。

    因为很明显,任何时候都可以创建另一个typedef,问题是: 今天C++中常用的字符串类型的最高下界是多少?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Daniel Daranas    14 年前

    C++中存在多少种字符串类型?

    语言中定义了三种字符串类型(请参见 Wikipedia ):

    • std::string (用于 basic_string<char> )
    • std::wstring (用于 basic_string<wchar_t> )
    • basic_string (类模板)

    char * 不是字符串。它是指向 char

    一个 w_char* w_char .

    CString 未在语言中定义。

    CCoolString . 当您在它后面附加一个“s”时,它被存储为一个“z”。但这不是语言本身的一部分,只是我的代码。在内部,它将使用 标准::字符串


    今天C++中常用的字符串类型的最高下界是多少?

    不是真正的问题。无法回答,因为这取决于用户。

        2
  •  0
  •   Manoj R    14 年前

    C++中没有默认字符串类型。使用char*和w_char*可以创建任意数量的字符串。string、CString和LPTSTR都是不同库的一部分,我不确定它们是否是标准库的一部分。(可能是,也可能不是)。 您可以创建自己的MarekString,它也可以是字符串类型。 因为C++是不一致的,甚至我还记得Joel Spolsky提出的一个建议,使之成为默认数据类型。