如何将声明为字符串的整数转换为int类型?

时间:2015-08-11 06:59:44

标签: c++ c++11

我试过这个解决方案,但它不起作用。

string mystring = "77";
int mynum = atoi(mystring);
  

错误:无法将'std :: string {aka std :: basic_string}'转换为'const char *'以将参数'1'转换为'int atoi(con​​st char *)'     int mynum = atoi(mystring);

3 个答案:

答案 0 :(得分:2)

如果您使用std::string,则可以atoi使用std::string::c_str()方法,或直接使用std::stoi

int val = std::stoi(mystring);

std::stoi reference

使用boost,您可以使用boost::lexical_cast

int val = boost::lexical_cast<int>(mystring);

boost::lexical_cast reference

请注意,atoi已经是历史记录,主要是因为它是旧的C标准库函数。现代代码正在使用lexical_caststoi

答案 1 :(得分:1)

试试这个:

string mystring = "77";
int mynum = atoi(mystring.c_str()); 

或在C ++ 11中:

string mystring = "77";
int mynum = stoi(mystring); 

答案 2 :(得分:0)

使用此

int mynum = atoi(mystring.c_str());