flu*_*ter 8 c++ string atoi strtol c++11
stoiC ++ 的功能定义为:
int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);
Run Code Online (Sandbox Code Playgroud)
如您所见,该base参数默认为10,因此默认情况下它只能处理十进制数字。通过设置base为0,它可以按数字的前缀处理数字。这与行为相同strtol,因此为什么将默认值设置为10而不是0?
Pet*_*ker 15
我写了添加这些功能的建议。各种stoX转换功能的目的是提供简单的转换。到目前为止,Base 10是最常用的用法,应该是最简单的用法,因此是默认用法。以0为基数会引起许多初学者的疑问,为什么转换该字符串"010"不会产生10。如果您在Stackoverflow上阅读了足够多的问题,就会看到这一点-许多初学者对文字常量的规则感到困惑,并希望int x = 010;初始化x为10。
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |