21xrx.com
2024-12-23 03:57:31 Monday
登录
文章检索 我的文章 写文章
C++中string字符串转化为数字的方法
2023-06-27 08:28:33 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复