21xrx.com
2025-03-28 09:39:19 Friday
文章检索 我的文章 写文章
如何将C++字符串转化为数字
2023-07-11 07:54:10 深夜i     24     0
C++ 字符串 转化 数字

在C++编程中,我们需要将字符串类型的数据转换为数字,这是非常常见的一个操作,因为很多情况下我们需要对字符串进行处理,例如计算,比较等等。那么如何将C++字符串转化为数字呢?下面我们来看看具体的方法。

方法一:使用C++11中的stoi函数

C++11中,标准库中提供了一个名为stoi函数,可以将字符串转换成数字。需包含头文件 。函数原型如下:

int stoi (const string& str, size_t* idx = 0, int base = 10);

其中str是要转换的字符串,idx参数是一个指向size_t类型的指针,它指向的变量将被设置为转换后的字符串尾部未转换部分的第一个字符的下标位置。base是转换的进制。该函数返回一个整数值。

例如:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str = "1234";
  int num = stoi(str);
  cout << num << endl;
}

输出结果为:

1234

方法二:使用C++11中的stod函数

对于浮点型数据,可以使用stod函数将字符串转化为浮点型。该函数的函数原型如下:

double stod (const string& str, size_t* idx = 0);

需要包含头文件 。其中str是要转换的字符串,idx参数是一个指向size_t类型的指针,它指向的变量将被设置为转换后的字符串尾部未转换部分的第一个字符的下标位置。该函数返回转换后的浮点型数据。

例如:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str = "3.14";
  double num = stod(str);
  cout << num << endl;
}

输出结果为:

3.14

方法三:使用stringstream流

C++中的sstream流也可以将字符串转化为数字类型。需要包含头文件 。示例代码如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
  string str = "123";
  int num;
  stringstream ss(str);
  ss >> num;
  cout << num << endl;
}

输出结果为:

123

以上就是三种将C++字符串转换为数字的方法,其中第一种方法使用C++11中的函数实现,效率较高,建议使用。对于C++11以下版本,可以使用第三种方法,使用stringstream流将字符串转化为数字。

  
  

评论区

请求出错了