21xrx.com
2025-03-30 08:46:50 Sunday
文章检索 我的文章 写文章
C++中string字符串转化为数字的方法
2023-06-27 08:28:33 深夜i     25     0
C++ string字符串 数字 转化方法 类型转换

在C++中,可以使用不同的方法将string字符串转换为数字。这可能是在编程中经常遇到的问题之一,因此本文将介绍5种最常用的方法。

方法1:使用stoi()函数

stoi()函数是一个内置函数,它可以将一个字符串转换为整数。它需要两个参数,第一个参数是一个字符串,第二个参数是一个可选参数,用于指定要使用的进制。

示例代码:

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

方法2:使用istringstream

istringstream可以将一个字符串转换为一个数字,该数字可以是任何基本类型变量。它需要两个参数,第一个参数是字符串,第二个参数是要转换的数字类型变量。

示例代码:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
  string str = "5678";
  int num;
  istringstream(str) >> num;
  cout << "The number is: " << num << endl;
  
  return 0;
}

方法3:使用atof()函数

atof()函数可以将一个字符串转换为浮点数。它只需要一个参数,即要转换的字符串。

示例代码:

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
  string str = "123.45";
  float num = atof(str.c_str());
  cout << "The number is: " << num << endl;
  return 0;
}

方法4:使用boost库

boost库提供了一个lexical_cast函数,可以将字符串转换为任何基本数据类型。它需要两个参数,第一个参数是要转换的数据类型,第二个参数是字符串。

示例代码:

#include <iostream>
#include <boost/lexical_cast.hpp>
#include <string>
using namespace std;
using boost::lexical_cast;
int main()
{
  string str = "8765";
  int num = lexical_cast<int>(str);
  cout << "The number is: " << num << endl;
  return 0;
}

方法5:使用自定义函数

如果你不想使用内置函数或boost库,你可以编写自己的函数来实现字符串转数字。这需要一些基本的编程知识,比如循环。

示例代码:

#include <iostream>
#include <string>
using namespace std;
int convertStringToInt(string str)
{
  int sum = 0;
  for (int i = 0; i < str.length(); i++)
  {
    sum = sum * 10 + (str[i] - '0');
  }
  return sum;
}
int main()
{
  string str = "999";
  int num = convertStringToInt(str);
  cout << "The number is: " << num << endl;
  return 0;
}

无论你使用哪种方法,都可以将字符串转换为数字。在实际编程中,你需要选择最适合你的方法,这通常取决于你的编程技能、代码的效率和可读性。

  
  

评论区

请求出错了