【发布时间】:2014-08-04 11:39:04
【问题描述】:
我的一个团队(一名 C++ 开发人员)告诉我,比较两个字符串的相等性“非常复杂和混乱”,因为它们每个都可能是几种不同的字符串类型。我很震惊,在 2014 年可能仍然是这种情况(在 C#、VB.Net 和我熟悉的大多数其他语言中,比较字符串是一个简单的步骤)。有没有一个免费的库可以处理这种类型的细节,以便可以轻松地比较两个字符串的相等性而不用担心它们的字符串类型?
【问题讨论】:
-
你对字符串相等的定义是什么?是“所有字节都相等”,还是“所有字形都相等”,有什么不同吗?
-
@duDE 我不同意这是 that 特定问题的重复。这个问题似乎是关于包含日期的特定类型的字符串。
-
“因为它们都可能是几种不同的字符串类型” 历史原因。不同的库使用不同的字符串类型;遗留代码使用某种 C 字符串等。即使每个人都同意使用相同的编码,C++ 标准库类型也不适合所有平台上的接口,因为它们的布局不是标准化的。
-
添加一个实用方法将这些“其他”字符串类型转换为标准字符串,然后您可以使用 ::compare 或 ::operator==
标签: c++