转换一个号码。从字符串到整数

时间:2011-03-13 13:33:11

标签: c++

  

可能重复:
  convert string to integer in c++

转换否。从字符串到整数。

例如:str:“1234” 转换为int a = 1234;

我希望提示有适当的解释

4 个答案:

答案 0 :(得分:4)

使用atoi()

int foo = atoi(str.c_str());

答案 1 :(得分:1)

如果您想要正确执行此操作并测试转换错误,建议您使用boost::lexical_cast。以下是一个使用示例:

#include <boost/lexical_cast>

std::string num_string("1234");

try
{
  int num=boost::lexical_cast<int>(numString);
}
catch (boost::bad_lexical_cast &ex)
{
  // Handle failed conversions
}

如果由于某种原因你无法在项目中使用boost,至少使用标准stringstream进行转换,以便获得一些错误检查。

答案 2 :(得分:1)

由于您将其标记为C ++,因此您可以查看istringstream

bool convertStr(const char *str, unsigned int *num) {
  istringstream iss(str);
  return (iss >> *num);    
}

或者您甚至可以使用模板:

template <class T>
bool fromString(T &t, const string &s, 
                ios_base& (*f)(ios_base&) = dec) {
  istringstream iss(s);
  return !(iss >> f >> t).fail();
}

答案 3 :(得分:0)

此任务可能尝试获取的技术是访问每个数字,例如str[0] - '0' = 1并乘以它们的位置值。但是atoi要快得多!