Android ndk 没有stoi函数

atoi

要把字符串转化为数字,C语言一般是atoi函数,在C++11中std中有了新的方法,使用std::stoi,
这个方法The LLVM libc++ runtime中是有的,但是The GNU STL中是不存在的,原因还不知道。
我的项目用的是c++_shared,但是为了主流要切换到gnustl_shared。

ndk 使用std

简单下载几个主流App,看看那些std的使用情况
weixin6323android840 libstlport_shared.so 390KB
alipay_wap_main libgnustl_shared.so 714KB
com.facebook.katana_88.0.0.22.76 libgnustl_shared.so 796KB

从中看出还是大部分使用gnustl

strtol

查找了下,其实有个 strtol 函数,而且功能更加强大,可以针对不同进制

1
extern long strtol(const char *, char **, int);

ndk stdlib.h源码中定义

cplusplus 例子

atoi VS strtol

stackoverflow有个说明
大意是strtol有错误说明,更加可控,atoi只有在很简单的情况下使用