无法在c ++中将字符串转换为int

时间:2014-05-21 04:37:25

标签: c++ string

我开始学习C ++几天了,我一直在研究一个示例项目,我需要将字符串转换为int。我在以下代码中面临一个问题:

#include <string>
#include <stdlib.h>

string sIMX = "45250";
int IMXValue = atoi(sIMX);
int IMXDeg = IMXValue/10;   
string sIMXFinal = std::to_string(IMXDeg);
strcpy(sIMX, sIMXFinal);
cout<<"String Value = "<<sIMX;

我必须将string中存在的值转换为整数...将其除以10,然后将值存储在字符串中并显示它。

错误:&#39; to_string&#39;不是&#39; std&#39;

的成员

3 个答案:

答案 0 :(得分:2)

所以我认为你希望使用c ++ 11,在这种情况下你应该这样做:

#include <string>
using namespace std;

string sIMX = "45250";
int IMXValue = stoi(sIMX);
int IMXDeg = IMXValue/10;   
string sIMXFinal = to_string(IMXDeg);
cout << "String Value = " <<sIMXFinal;

如果你想要聪明:

string sIMX = "45250";
string sIMXFinal = to_string(stoi(sIMX)/10);

这是所有c ++的东西,应该让你的生活更轻松一点。您也可以使用stringstreams。别忘了编译:

g++ -std=c++11 yourprogram.cpp -o outputname

答案 1 :(得分:1)

您的方法很古怪,因为将字符串转换为整数的推荐方法是使用字符串流

std::string number = "123456789";

std::stringstream ss(number);

int num = 0;

ss >> num;

if (ss.fail()) {
    // Error
}
else {
    std::cout << "The integer value is: " << num;
}

需要:<sstream>

答案 2 :(得分:0)

由于你已经使用了atoi,你可以使用itoa进行相反的转换。