2014-11-06 152 views
1

为什么std::string根本不聪明。为什么它没有字符串操作功能,如Format/sprintf,转换为大写,转换为低,以输入从整数/实,转换成整数/实,和其他重要功能的任何字符串类应该有(参考:CStringwxString,System.String,BASIC字符串...)。为什么std :: string没有大写/小写,格式等方法?

我知道有像std::to_string这样的新功能,但是..为什么string本身是如此愚蠢。为什么它只是vector<char>?为什么仍然在石器时代?为什么标准不使它变得聪明!?

+3

_That是他们roll_ – 2014-11-06 11:21:05

+2

增加流量与有关如何操作字符串在C++问题stackoverflow.com方式。这是一个阴谋。 – 2014-11-06 11:22:16

+0

没有理由,就像字符串类! – Ajay 2014-11-06 11:22:39

回答

9

案例的比较和转换,完全通用,又硬又需要太多的信息;就这么简单。

在美国和英国英语中的确很简单。

但是德国人呢?例如。小写字母ß(小写字母表示一个字符,大写字母表示两个字符:SS)。

什么这std::string可以支持宽字符集?来自其他欧洲语言的重音字符如何?

没有什么愚蠢的关于这个类的。它有一个明确的规范,标准委员会不会发出可能会破坏语言的功能。

至于格式,这在很大程度上是推迟到流库,例如std::stringstream。没有理由直接并入std::string

+0

其中最大的问题是,在土耳其语中,'i'的大写字母不是'I'。 – kennytm 2014-11-06 11:36:28

+0

@KennyTM:这也是我的最爱之一。我的德语是ß,因为这会导致字符串缓冲区的重新分配! – Bathsheba 2014-11-06 11:38:54

+0

我们有'std :: wstring'。 – Ajay 2014-11-06 11:55:07

相关问题