2014-11-06 64 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

相關問題