📜  cpp 中的 char* 到 int - C++ (1)

📅  最后修改于: 2023-12-03 15:14:16.384000             🧑  作者: Mango

C++ 中的 char* 到 int

在 C++ 中,我们常常需要将字符类型的数据转换成整数类型。常见的字符类型包括 char*,string等。本文将重点介绍 C++ 中的 char* 转换成 int 的方法。

字符串转整数

C++ 标准库提供了很多将字符串转换成数字的函数,其头文件为 。其中最常用的是 atoi() 函数,它将 C 风格字符串转换成 int 类型。

#include <cstdlib>

// 将 char* str 转换成 int 类型
int num = std::atoi(str);

此外,还有一些相似的函数可供使用:

  • atof():将字符串转换成 double 类型
  • atol():将字符串转换成 long 类型
  • strtod():将字符串转换成 double 类型
  • strtol():将字符串转换成 long 类型
  • strtoul():将字符串转换成 unsigned long 类型

需要注意的是,这些函数都不能处理错误输入。比如:

char* str = "abc123";
int num = std::atoi(str); // num 的值为 0,意味着转换失败

因此,在使用这些函数时,需要谨慎处理输入错误的情况。

char* 转整数

如果需要将 char* 类型的字符串转换成 int 类型,可以使用 stringstream 类。

#include <sstream>

// 将 char* str 转换成 int 类型
int num;
std::stringstream ss;
ss << str;
ss >> num;

这里需要注意的是,如果输入的字符串不能转换成整数,将会输出 0。因此,需要在使用之前先检查输入的字符串是否合法。

总结

C++ 中将字符类型的数据转换成整数类型,可以使用标准库提供的各种函数,比如 atoi()、atof()、strtol() 等。如果需要将 char* 类型的字符串转换成 int 类型,可以使用 stringstream 类。在使用这些函数时,需要注意错误输入的情况,避免出现不必要的错误。