一、stoi

头文件string

int stoi (const string&  str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);

将字符串转换为整数
解析str将其内容解释为指定基数的整数,并以int值的形式返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtol(或wcstol)来执行转换(有关该过程的更多详细信息,请参阅strtol)。

参数

  1. str
    字符串对象,表示整数。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。
  3. base
    确定有效字符及其解释的数字基数(基数)。
    如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

返回值

成功时,该函数将转换后的整数作为int值返回。

// stoi example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stoiint main ()
{std::string str_dec = "2001, A Space Odyssey";std::string str_hex = "40c3";std::string str_bin = "-10010110001";std::string str_auto = "0x7f";std::string::size_type sz;   // alias of size_tint i_dec = std::stoi (str_dec,&sz);int i_hex = std::stoi (str_hex,nullptr,16);int i_bin = std::stoi (str_bin,nullptr,2);int i_auto = std::stoi (str_auto,nullptr,0);std::cout << str_dec << ": " << i_dec << " and [" << str_dec.substr(sz) << "]\n";std::cout << str_hex << ": " << i_hex << '\n';std::cout << str_bin << ": " << i_bin << '\n';std::cout << str_auto << ": " << i_auto << '\n';return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出int的可表示值范围,则抛出out_of_range异常。
无效的idx会导致未定义的行为。

二、stol

头文件string

long stol (const string&  str, size_t* idx = 0, int base = 10);
long stol (const wstring& str, size_t* idx = 0, int base = 10);

将字符串转换为long int
解析str将其内容解释为指定基数的整数,并以long int类型的值返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtol(或wcstol)来执行转换(有关该过程的更多详细信息,请参阅strtol)。

参数

  1. str
    字符串对象,表示整数。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。
  3. base
    确定有效字符及其解释的数字基数(基数)。
    如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

返回值

成功时,该函数将转换后的整数作为long int类型的值返回。

// stol example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stolint main ()
{std::string str_dec = "1987520";std::string str_hex = "2f04e009";std::string str_bin = "-11101001100100111010";std::string str_auto = "0x7fffff";std::string::size_type sz;   // alias of size_tlong li_dec = std::stol (str_dec,&sz);long li_hex = std::stol (str_hex,nullptr,16);long li_bin = std::stol (str_bin,nullptr,2);long li_auto = std::stol (str_auto,nullptr,0);std::cout << str_dec << ": " << li_dec << '\n';std::cout << str_hex << ": " << li_hex << '\n';std::cout << str_bin << ": " << li_bin << '\n';std::cout << str_auto << ": " << li_auto << '\n';return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出long int的可表示值范围,则抛出invalid_argument或out_of_range异常。
无效的idx会导致未定义的行为。

三、stoul

头文件string

unsigned long stoul (const string&  str, size_t* idx = 0, int base = 10);
unsigned long stoul (const wstring& str, size_t* idx = 0, int base = 10);

将字符串转换为无符号整数
解析str将其内容解释为指定基数的整数,该基数作为无符号长整数值返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtoul(或wcstoul)执行转换(有关该过程的更多详细信息,请参阅strtol)。

参数

  1. str
    字符串对象,表示整数。
  2. inx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。
  3. base
    确定有效字符及其解释的数字基数(基数)。
    如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

返回值

成功时,该函数将转换后的整数作为无符号长整数值返回。

// stoul example
#include <iostream>   // std::cin, std::cout
#include <string>     // std::string, std::stoul, std::getlineint main ()
{std::string str;std::cout << "Enter an unsigned number: ";std::getline (std::cin,str);unsigned long ul = std::stoul (str,nullptr,0);std::cout << "You entered: " << ul << '\n';return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出无符号长度的可表示值范围,则抛出out_of_range异常。
无效的idx会导致未定义的行为。

四、stoll

头文件string

long long stoll (const string&  str, size_t* idx = 0, int base = 10);
long long stoll (const wstring& str, size_t* idx = 0, int base = 10);

将字符串转换为long long
解析str将其内容解释为指定基数的整数,并将其作为long long类型的值返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtoll(或wcstoll)来执行转换(有关该过程的更多详细信息,请参阅strtol)。

参数

  1. str
    字符串对象,表示整数。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。
  3. base
    确定有效字符及其解释的数字基数(基数)。
    如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

返回值

成功时,该函数返回转换后的整数作为long long类型的值。

// stoll example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stollint main ()
{std::string str = "8246821 0xffff 020";std::string::size_type sz = 0;   // alias of size_twhile (!str.empty()) {long long ll = std::stoll (str,&sz,0);std::cout << str.substr(0,sz) << " interpreted as " << ll << '\n';str = str.substr(sz);}return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出可表示值的范围超长,则抛出out_of_range异常。
无效的idx会导致未定义的行为。

五、stoull

头文件string

unsigned long long stoull (const string&  str, size_t* idx = 0, int base = 10);
unsigned long long stoull (const wstring& str, size_t* idx = 0, int base = 10);

将字符串转换为unsigned long long
解析str将其内容解释为指定基数的整数,该值作为unsigned long long类型的值返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtoull(或wcstoull)执行转换(有关该过程的更多详细信息,请参阅strtol)。

参数

  1. str
    字符串对象,表示整数。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。
  3. base
    确定有效字符及其解释的数字基数(基数)。
    如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

返回值

成功时,该函数将转换后的整数作为unsigned long long类型的值返回。

// stoull example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stoullint main ()
{std::string str = "8246821 0xffff 020 -1";std::string::size_type sz = 0;   // alias of size_twhile (!str.empty()) {unsigned long long ull = std::stoull (str,&sz,0);std::cout << str.substr(0,sz) << " interpreted as " << ull << '\n';str = str.substr(sz);}return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出无符号long long的可表示值范围,则抛出out_of_range异常。
无效的idx会导致未定义的行为。

六、stof

头文件string

float stof (const string&  str, size_t* idx = 0);
float stof (const wstring& str, size_t* idx = 0);

将字符串转换为float
解析str将其内容解释为浮点数,该值作为float类型返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtod(或wcstod)来执行转换(有关该过程的更多详细信息,请参阅strtod)。 请注意,这些函数接受的格式取决于当前的语言环境。

参数

  1. str
    具有浮点数表示的String对象。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。

返回值

成功时,该函数将转换后的浮点数作为float类型的值返回。

// stof example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stofint main ()
{std::string orbits ("686.97 365.24");std::string::size_type sz;     // alias of size_tfloat mars = std::stof (orbits,&sz);float earth = std::stof (orbits.substr(sz));std::cout << "One martian year takes " << (mars/earth) << " Earth years.\n";return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出float的可表示值范围(在某些库实现中,这包括下溢),则抛出out_of_range异常。
无效的idx会导致未定义的行为。

七、stod

头文件string

double stod (const string&  str, size_t* idx = 0);
double stod (const wstring& str, size_t* idx = 0);

将字符串转换为double
解析str将其内容解释为浮点数,该值返回为double类型的值。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtod(或wcstod)来执行转换(有关该过程的更多详细信息,请参阅strtod)。 请注意,这些函数接受的格式取决于当前的语言环境。

参数

  1. str
    具有浮点数表示的String对象。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。

返回值

成功时,该函数将转换后的浮点数作为double类型的值返回。

// stod example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stodint main ()
{std::string orbits ("365.24 29.53");std::string::size_type sz;     // alias of size_tdouble earth = std::stod (orbits,&sz);double moon = std::stod (orbits.substr(sz));std::cout << "The moon completes " << (earth/moon) << " orbits per Earth year.\n";return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出double的可表示值范围(在某些库实现中,这包括下溢),则抛出out_of_range异常。
无效的idx会导致未定义的行为。

八、stold

头文件string

long double stold (const string&  str, size_t* idx = 0);
long double stold (const wstring& str, size_t* idx = 0);

将字符串转换为long double
解析str将其内容解释为浮点数,该值作为long double类型返回。

如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

该函数使用strtold(或wcstold)来执行转换(有关该过程的更多详细信息,请参阅strtod)。

参数

  1. str
    具有浮点数表示的String对象。
  2. idx
    指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
    此参数也可以是空指针,在这种情况下不使用它。

返回值

成功时,该函数将转换后的浮点数作为long double类型的值返回。

// stold example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stodint main ()
{std::string orbits ("90613.305 365.24");std::string::size_type sz;     // alias of size_tlong double pluto = std::stod (orbits,&sz);long double earth = std::stod (orbits.substr(sz));std::cout << "Pluto takes " << (pluto/earth) << " years to complete an orbit.\n";return 0;
}

复杂度

未指定,但通常在解释的字符数中是线性的。

数据范围

修改idx指向的值(如果不为零)。

异常

如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出了可表示值的范围(在某些库实现中,这包括下溢),则抛出out_of_range异常。
无效的idx会导致未定义的行为。

C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)相关推荐

  1. c++字符串转换为数字(stoi, stol, stoul, stoull, stof, stod, stold)

    c++字符串转换为数字(stoi, stol, stoul, stoull, stof, stod, stold) 头文件#include <string> 1. stoi 将字符串转换成 ...

  2. std::stoi stol stoul stoll stof stod

    std::stoi stol stoul stoll stof stod 一系列函数为C++提供的转换string/wstring的方法,但是对于第二个参数网上说的是从第N个位置开始,其实并不是,不知 ...

  3. C++学习心得:字符串转换(to_string,stoi,stol,stoul)

    一.结论 使用C++11,并且导入头文件 #include<string> other ---> string to_string (int / long / float /...) ...

  4. 【最贴心】C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)

    先说结论: stoi: string型变量转换为int型变量 stol: string型变量转换为long型变量 stoul:string型变量转换为unsigned long型变量 stoll: s ...

  5. C++stoi、stol、stoll 函数用法

    stoi() 函数 #include <string> int stoi(const std::string& str, std::size_t* pos = 0, int bas ...

  6. std::stoi - std::stol - std::stoll

    std::stoi - std::stol - std::stoll Defined in header <string> - 定义于头文件 <string> function ...

  7. C++stoul、stoull 函数用法

    stoul() 函数 #include <string> unsigned long stoul(const std::string& str, std::size_t* pos ...

  8. C++ 如何将字符串转换成数字

    使用函数:stoi(string )将string转换成int型 使用函数:stol(string )将string转换成long int型 使用函数:stof(string )将string转换成f ...

  9. C++中 stol()和stoll()

    stol():将所提供的字符串转化为long int stoll():将所提供的字符串转化为long long

  10. Go 学习笔记(51)— Go 标准库之 strings(字符串比较、字符串前后缀、字符串统计、字符串索引、字符串包含、字符串转换、字符串复制、字符串替换、字符串去除、字符串分割和连接)

    1. 概述说明 import "strings" strings 包实现了用于操作字符的简单函数. strings 包与 bytes 包中的函数用法基本一样. 2. 主要函数 2. ...

最新文章

  1. IIS6.0发布后对路径“D:\xxx\xxxx\web.config”的访问被拒绝问题的解决方法
  2. coursera—吴恩达Machine Learning笔记(1-3周)
  3. 从零开始学习jQuery (五) 事件与事件对象【转】
  4. 3.5 Facade(外观)
  5. NSLayoutConstraint
  6. linux LD_LIBRARY_PATH环境变量
  7. Apache AB 压力测试
  8. python爬取小说出现乱码_详解Python解决抓取内容乱码问题(decode和encode解码)
  9. 常见cmd命令,开发人员必备
  10. 计算机网络中的物理层
  11. 搬运:【详解javascript中的this对象】
  12. Delphi之Exception获得错误信息
  13. 【转】mutation接收单个参数和多个参数
  14. 现金支票打印模板excel_Word如何批量打印奖状?按下这个键,1分钟生成1000张
  15. JS动态生成表格案例
  16. 利用到路面提取道路中心线的方法
  17. 第1.5 章 elasticsearch备份过程记录
  18. 一个近乎完美的Unity全平台原生c#热更方案
  19. html添加微信号,html代码点击复制微信号并自动打开微信添加好友
  20. java word 加密_java 加密解密WORD文档

热门文章

  1. 雷神众测开启团队竞赛模式
  2. 漩涡鸣人的十大过人之处
  3. 处女座与小姐姐(三)
  4. 25W三星快充协议芯片,支持支持USB PD 3.0
  5. win10系统升级一段时间后,内存占用过高
  6. html网页文字链接的若干问题
  7. MATLAB画一个球
  8. 解读京东“拉黑门”:被拐弯的真相
  9. MS-DOS系统下的autoexec.bat
  10. 旅游攻略应该怎么做,你做对了吗?