c++ - 为什么 std::string 没有大小写、格式等方法?

标签 c++ string c++11 stl

<分区>

为什么 std::string一点都不聪明。为什么它没有像 Format/sprintf 这样的字符串操作 功能,转换为大数,转换为小数,从整数/实数获取输入,转换为整数/实数,以及任何字符串类都应具有的其他重要功能(引用:CStringwxStringSystem.String,BASIC 字符串。 ..).

我知道有像 std::to_string 这样的新函数,但是..为什么string自己就是这么傻。为什么它只是 vector<char> ?为什么还在石器时代?为什么标准不能让它变得聪明!?

最佳答案

案例比较和转换,一般来说,很难并且需要太多信息;就这么简单。

在美式英语和英式英语中,这确实很简单。

但是德语呢?例如。小写 ß(小写是一个字符,大写是两个字符:SS)。

std::string 可以支持的宽字符集呢?来自其他欧洲语言的重音字符(如 ë)呢?

这门课一点也不傻。它具有明确定义的规范,标准委员会不会发布可能破坏语言的功能。

至于格式化,这在很大程度上被推迟到流媒体库,例如std::stringstream。没有理由直接合并到 std::string 中。

关于c++ - 为什么 std::string 没有大小写、格式等方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778165/

相关文章:

c++ - 使用 MINGW gcc 编译时,不会为 std::string 调用重载的 new 运算符

java - 从文件中读取字符串行的有效方法

java - 比较两个字符串,如果一个字符串包含另一个字符串的所有字符,则返回 true

python - 替换文件内容中的字符串

c++ - boost spirit 解析器前瞻解析

C++ - 接受绑定(bind)函数作为参数并将其传递给另一个函数的模板函数

c++ - CMake:C 编译器标识未知

c++ - boost::bind 不适用于 boost::tuple::get<N>()

c++ - qhull 库 - C++ 接口(interface)

c++ - 显式默认/删除的函数可以在 ref 限定符上重载吗?