我想将字符串转换为 int,我不是指 ASCII 码。
为了快速浏览,我们以字符串的形式传入一个方程。我们要将其分解,正确格式化并求解线性方程。现在,这么说,我无法将字符串转换为 int。
我知道字符串将采用 (-5) 或 (25) 等格式,所以它绝对是一个 int。但是我们如何从字符串中提取它呢?
我在想的一种方法是在字符串中运行 for/while 循环,检查一个数字,然后提取所有数字,然后查看是否有前导“-”,如果有,将 int 乘以 - 1.
不过,对于这样一个小问题,它似乎有点过于复杂。有任何想法吗?
在 C++11 中有一些不错的新转换函数 from std::stringto a number 类型。
std::string
所以而不是
atoi( str.c_str() )
您可以使用
std::stoi( str )
str你的号码在哪里std::string。
str
有各种数字的版本: long stol(string), float stof(string), double stod(string),… 见http://en.cppreference.com/w/cpp/string/basic_string/stol
long stol(string)
float stof(string)
double stod(string)