21xrx.com
2024-12-27 17:32:01 Friday
登录
文章检索 我的文章 写文章
C++字符串转化为数字的函数
2023-06-30 15:41:01 深夜i     --     --
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++迭代器遍历

评论区

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