21xrx.com
2025-03-22 18:18:17 Saturday
文章检索 我的文章 写文章
C++字符串转化为数字的函数
2023-06-30 15:41:01 深夜i     6     0
C++ 字符串 数字 转换函数 atoi stringstream

在编程中,经常会遇到需要将字符串转化为数字的情况。C++语言提供了一系列函数来完成这项任务。以下是几种常用的字符串转化为数字的函数。

1. atoi函数:

atoi函数是将字符串转换为整数的函数,函数的原型如下:

int atoi ( const char * str );

该函数将一个字符串转换为一个整数,并返回转换后的整数值。如果字符串中有不合法的字符,则转换会停止,并返回截止之前的整数值。例如:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
  char str1[]="123";
  char str2[]="abc";
  int n1 = atoi(str1);
  int n2 = atoi(str2);
  cout << n1 << endl;//输出结果:123
  cout << n2 << endl;//输出结果:0
  return 0;
}

2. atof函数:

atof函数是将字符串转换为浮点数的函数,函数的原型如下:

double atof ( const char * str );

该函数将一个字符串转换为一个浮点数,并返回转换后的浮点数值。如果字符串中有不合法的字符,则转换会停止,并返回截止之前的浮点数值。例如:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
  char str1[]="1.23";
  char str2[]="abc";
  double x1 = atof(str1);
  double x2 = atof(str2);
  cout << x1 << endl;//输出结果:1.23
  cout << x2 << endl;//输出结果:0
  return 0;
}

3. stoi函数:

stoi函数是将字符串转换为整数的函数,函数的原型如下:

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

该函数将一个字符串转换为一个整数,并返回转换后的整数值。如果字符串中有不合法的字符,则转换会停止,并返回截止之前的整数值。例如:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str1 = "123";
  string str2 = "abc";
  int n1 = stoi(str1);
  int n2 = stoi(str2);
  cout << n1 << endl;//输出结果:123
  cout << n2 << endl;//输出结果:invalid_argument异常
  return 0;
}

4. stod函数:

stod函数是将字符串转换为浮点数的函数,函数的原型如下:

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

该函数将一个字符串转换为一个浮点数,并返回转换后的浮点数值。如果字符串中有不合法的字符,则转换会停止,并返回截止之前的浮点数值。例如:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str1 = "1.23";
  string str2 = "abc";
  double x1 = stod(str1);
  double x2 = stod(str2);
  cout << x1 << endl;//输出结果:1.23
  cout << x2 << endl;//输出结果:invalid_argument异常
  return 0;
}

总之,在C++中,有多种转换函数可供程序员使用,根据实际需要选择合适的函数进行字符串转化为数字的任务,可以使代码更加简洁高效。

  
  
下一篇: C++迭代器遍历

评论区

请求出错了