C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

一、stoi

  头文件String

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

  

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

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

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

参数

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

返回值

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

// stoi example
#include <iostream>    std::cout
#include <String>      std::string,std::stoi

int main ()
{
  std::String str_dec = "2001,A Space Odyssey";
  std::String str_hex = 40c3String str_bin = -10010110001String str_auto = 0x7f;

  std::String::size_type sz;    alias of size_t

  int i_dec = std::stoi (str_dec,&sz);
  int i_hex = std::stoi (str_hex,nullptr,16);
  int i_bin = std::stoi (str_bin,1)">2int i_auto = std::stoi (str_auto,1)">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 << ;
  std::cout << str_auto << " << i_auto << ;

  return ;
}

 

 

复杂度

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

数据范围

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

异常

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

二、stol

文件String

long stol (const String&  str,int base = 10);
long stol (const wString& str,int base = 10);

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

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

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

参数

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

返回值

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

// stol example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stol

int 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_t

  long li_dec = std::stol (str_dec,&sz);
  long li_hex = std::stol (str_hex,16);
  long li_bin = std::stol (str_bin,2);
  long li_auto = std::stol (str_auto,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,int base = 10);
unsigned long stoul (const wString& str,int base = 10);

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

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

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

参数

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

返回值

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

// stoul example
#include <iostream>   // std::cin,std::cout
#include <String>     // std::string,std::stoul,std::getline

int main ()
{
  std::string str;
  std::cout << "Enter an unsigned number: ";
  std::getline (std::cin,str);
  unsigned long ul = std::stoul (str,0);
  std::cout << "You entered: " << ul << '\n';
  return 0;
}

 

 

 

复杂度

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

数据范围

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

异常

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

四、stoll

文件String

long long stoll (const String&  str,int base = 10);
long long stoll (const wString& str,int base = 10);

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

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

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

参数

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

返回值

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

// stoll example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stoll

int main ()
{
  std::string str = "8246821 0xffff 020";

  std::string::size_type sz = 0;   // alias of size_t

  while (!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,int base = 10);
unsigned long long stoull (const wString& str,int base = 10);

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

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

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

参数

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

返回值

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

// stoull example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stoull

int main ()
{
  std::string str = "8246821 0xffff 020 -1";

  std::string::size_type sz = 0;   // alias of size_t

  while (!str.empty()) {
    unsigned long long ull = std::stoull (str,sz) << " interpreted as " << ull << '\n';
    str = str.substr(sz);
  }

  return 0;
}

@H_502_580@

 

 

复杂度

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

数据范围

修改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不是空指针,则该@L_874_3@还将idx的值设置为数字后str中第一个字符的位置。

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

参数

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

返回值

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

// stof example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stof

int main ()
{
  std::string orbits ("686.97 365.24");
  std::string::size_type sz;     // alias of size_t

  float 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不是空指针,则该@L_874_3@还将idx的值设置为数字后str中第一个字符的位置。

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

参数

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

返回值

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

// stod example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stod

int main ()
{
  std::string orbits ("365.24 29.53");
  std::string::size_type sz;     // alias of size_t

  double 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不是空指针,则该@L_874_3@还将idx的值设置为数字后str中第一个字符的位置。

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

参数

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

返回值

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

// stold example
#include <iostream>   // std::cout
#include <String>     // std::string,std::stod

int main ()
{
  std::string orbits ("90613.305 365.24");
  std::string::size_type sz;     // alias of size_t

  long 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)全部内容,希望文章能够帮你解决C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: