什么是字符串转数字
在c++中,字符串是由字符组成的数组,而数字是整数或小数。因此,在对数字进行操作时更方便的方式是将其转换为数字类型,进行计算、比较等操作,而在c++中,我们可以使用字符串转数字的方法来完成这一操作。
字符串转数字的方法
使用atoi函数转换整数型字符串
atoi函数是c标准库中的一个函数,它可以将字符型数字转换成整数类型。
具体方法如下:
int atoi(const char *nptr);
其中,nptr是需要转换的字符串,函数返回值类型为int。
例如,下面的代码将字符串“123”转换为整数类型:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
char str1[]="123";
int num=atoi(str1); //调用函数,将字符串转换为整数
cout<<"num value: "<<num<<endl; //输出转换后的整数
return 0;
}
输出结果为:
num value: 123
可以看到,字符串“123”被成功转换为整数类型。
使用atof函数转换浮点型字符串
与atoi函数不同的是,atof函数可以将字符串转换成浮点数类型。
具体方法如下:
double atof(const char *nptr);
其中,nptr是需要转换的字符串,函数返回值类型为double。
例如,下面的代码将字符串“123.45”转换为浮点数类型:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
char str1[]="123.45";
double num=atof(str1); //调用函数,将字符串转换为浮点数
cout<<"num value: "<<num<<endl; //输出转换后的浮点数
return 0;
}
输出结果为:
num value: 123.45
可以看到,字符串“123.45”被成功转换为浮点数类型。
使用stringstream类转换字符串
stringstream是c++中流类的一种,它可以将字符型字符串转换成各种类型的数字,包括整数、浮点数、长整数等。
具体方法如下:
#include <sstream>
stringstream stream(string str);
stream >> number;
其中,string str是需要转换的字符串,number是转换后的数字类型。
例如,下面的代码将字符串“123”转换为整数类型:
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
string str1="123";
stringstream ss;
ss<<str1;
int num;
ss>>num;
cout<<"num value: "<<num<<endl;
return 0;
}
输出结果为:
num value: 123
可以看到,字符串“123”被成功转换为整数类型。
当然,sstream类也支持将字符串转换为浮点数类型。例如,我们可以将字符串“123.45”转换为浮点数类型,代码如下:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
string str1="123.45";
stringstream ss;
ss<<str1;
double num;
ss>>num;
cout<<"num value: "<<num<<endl;
return 0;
}
输出结果为:
num value: 123.45
可以看到,字符串“123.45”被成功转换为浮点数类型。
总结
本文介绍了c++中将字符串转换为数字类型的几种方法,包括使用atoi函数、atof函数和sstream类。我们可以根据需要选择适合自己的转换方法,实现将字符串转换为数字的操作。