理解并掌握C++中的字符串转换函数:stoi, stol, stoul, stoll, stoull和stof
最编程
2024-01-12 20:14:45
...
头文件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)。 请注意,这些函数接受的格式取决于当前的语言环境。
参数
- str
具有浮点数表示的String对象。 - idx
指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。
此参数也可以是空指针,在这种情况下不使用它。
返回值
成功时,该函数将转换后的浮点数作为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会导致未定义的行为。
上一篇: Python torch.overrides.handle_torch_function实例讲解
下一篇: 理解并掌握C++中的字符串转换函数:stoi, stol, stoul, stoll, stoull和stof
推荐阅读
-
C++的字符串转换方法:stoi, stol, stoul, stoll, stoull, stof, stod和stold的使用
-
C++的字符串转换方法:stoi, stol, stoul, stoll, stoull, stof, stod和stold的使用
-
理解C++编程中的stol和stoll函数:在函数调用中如何进行字符串转换
-
C++的超赞字符串转换函数(stoi、stol、stoul、stoll、stoull、stof、stod和stold)
-
理解并掌握C++中的字符串转换函数:stoi, stol, stoul, stoll, stoull和stof
-
理解并掌握C++中的字符串转换函数:stoi, stol, stoul, stoll, stoull和stof