21xrx.com
2024-12-22 22:09:05 Sunday
登录
文章检索 我的文章 写文章
C++字符串转换成数字
2023-07-09 06:42:30 深夜i     --     --
C++ 字符串 转换 数字

C++是一门非常强大的编程语言,它不仅支持各种数据类型,还提供了一些非常实用的字符串操作函数,其中就包括将字符串转换成数字的函数。

将字符串转换成数字在程序中经常用到,例如需要读取用户从键盘输入的数字,或从文件中读取数据时,字符串转换成数字是必不可少的操作。C++中提供了atoi、atof、atol等一系列函数来完成这一操作。下面我们来简单介绍一下这几个函数的用法。

(1)atoi函数

atoi函数是将字符串转换成整数的函数,其头文件为 。它的作用是将一个带符号的字符串转换成对应的整数类型。函数的原型如下:


int atoi(const char *nptr);

函数参数为一个指向要转换成整数的字符串的指针,函数返回值是转换后的整数。

下面是一个使用atoi函数的例子:


#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

  char str[] = "12345";

  int num = atoi(str);

  cout << "String: " << str << endl;

  cout << "Converted number: " << num << endl;

  return 0;

}

输出结果为:


String: 12345

Converted number: 12345

需要注意的是,如果字符串中包含非数字字符,则该函数只会将第一个数字字符及其后面的字符转换成数字,忽略其他字符。例如:


char str[] = "123a45";

int num = atoi(str);

cout << "String: " << str << endl;

cout << "Converted number: " << num << endl;

输出结果为:


String: 123a45

Converted number: 123

(2)atof函数

atof函数是将字符串转换成浮点数的函数,其头文件也为 。它的作用是将一个字符串转换成对应的浮点数类型。函数的原型如下:


double atof(const char *nptr);

函数参数为一个指向要转换成浮点数的字符串的指针,函数返回值是转换后的浮点数。

下面是一个使用atof函数的例子:


#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

  char str[] = "3.1415926";

  double num = atof(str);

  cout << "String: " << str << endl;

  cout << "Converted number: " << num << endl;

  return 0;

}

输出结果为:


String: 3.1415926

Converted number: 3.14159

需要注意的是,对于包含多个小数点的字符串,该函数只会将第一个小数点及其后面的数字转换成浮点数,忽略其他小数点。例如:


char str[] = "3.14.15.926";

double num = atof(str);

cout << "String: " << str << endl;

cout << "Converted number: " << num << endl;

输出结果为:


String: 3.14.15.926

Converted number: 3.14

(3)atol函数

atol函数是将字符串转换成长整型的函数,其头文件也为 。它的作用是将一个带符号的字符串转换成对应的长整数类型。函数的原型如下:


long atol(const char *nptr);

函数参数为一个指向要转换成长整数的字符串的指针,函数返回值是转换后的长整数。

下面是一个使用atol函数的例子:


#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

  char str[] = "-1234567890";

  long num = atol(str);

  cout << "String: " << str << endl;

  cout << "Converted number: " << num << endl;

  return 0;

}

输出结果为:


String: -1234567890

Converted number: -1234567890

需要注意的是,如果字符串中包含非数字字符,则该函数只会将第一个数字字符及其后面的字符转换成数字,忽略其他字符。例如:


char str[] = "123a4567890";

long num = atol(str);

cout << "String: " << str << endl;

cout << "Converted number: " << num << endl;

输出结果为:


String: 123a4567890

Converted number: 123

总之,C++提供了多种将字符串转换成数字的函数,选择合适的函数可以大大简化程序的编写。在实际应用中,我们需要根据具体情况选择合适的函数,并注意字符串中可能会包含非数字字符的情况。

  
  

评论区

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