谁是时辰:c++中string类型如何转换成int类型

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 09:49:22
例子:
string str_tmp="12345";
int int_tmp;
如何让int_tmp==12345?
我以前一直用c++builder,c++builder不存在这个问题,自带类型转换函数,可是我现在用最简单的c++编译器Dev-C++,这编译器不带类型转换函数,所以希望大家指教,多谢!!

c++中string到int的转换有两种方法:
1、 在C标准库里面,使用atoi:

#include <cstdlib>
#include <string>
std::string text = "152";
int number = std::atoi( text.c_str() );
if (errno == ERANGE) //可能是std::errno
{
//number可能由于过大或过小而不能完全存储
}
else if (errno == ????)
//可能是EINVAL
{
//不能转换成一个数字
}

2、 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)

#include <sstream>
#include <string>
std::string text = "152";
int number;
std::stringstream ss;
ss << text;//可以是其他数据类型
ss >> number; //string -> int
if (! ss.good())
{
//错误发生
}
ss << number;// int->string
string str = ss.str();
if (! ss.good())
{
//错误发生
}

int_tmp = atoi(str_tmp.c_str());

可以用
int nResult;
nResult=sscanf(str_tmp.c_str(),"%d",&int_tmp);
if (nResult!=1)
{//转换不成功的处理
}
这样可以判断是否转换成功。

没有的时候就自己写一个啊,干吗总是等着别人写好的?

路过,做个记号!