21xrx.com
2025-07-05 07:23:26 Saturday
文章检索 我的文章 写文章
C++ 字符串转化为数字的方法
2023-07-04 02:14:59 深夜i     25     0
C++ 字符串 转化 数字 方法

在 C++ 编程中,有时需要将字符串转化为数字,比如将用户输入的字符串转换成整型或浮点型变量。以下介绍几种常用的方法。

1. 使用 stoi() 函数

stoi() 函数可以将一个字符串转换为其对应的整型值。该函数位于头文件 中,使用时需要将字符串作为其参数传入。

例如,以下代码可以将字符串 "12345" 转换为整型变量 num:

#include <string>
#include <iostream>
int main() {
  std::string str = "12345";
  int num = std::stoi(str);
  std::cout << num << std::endl;  // 输出:12345
  return 0;
}

当转换失败时,该函数会抛出一个 std::invalid_argument 异常。

2. 使用 atof() 和 atoi() 函数

atof() 函数可将字符串转换为其对应的浮点型值,而 atoi() 函数则将字符串转换为其对应的整型值。两个函数都位于头文件 中。

举例来说,以下代码可以将字符串 "3.14" 转换为浮点型变量 f,将字符串 "100" 转换为整型变量 n:

#include <stdlib.h>
#include <iostream>
int main() {
  const char* str1 = "3.14";
  const char* str2 = "100";
  float f = std::atof(str1);
  int n = std::atoi(str2);
  std::cout << f << std::endl;  // 输出:3.14
  std::cout << n << std::endl;  // 输出:100
  return 0;
}

需要注意的是,如果字符串无法转换成数字,这两个函数会返回零。

3. 使用 stringstream 类

stringstream 是一个类,可以将字符串转换为各种类型的数值。该类在头文件 中声明。

下面是一个使用 stringstream 的示例程序:

#include <iostream>
#include <sstream>
int main()
  std::string str = "42.5";
  std::stringstream ss;
  ss << str;
  float f;
  ss >> f;
  std::cout << f << std::endl;  // 输出:42.5
  return 0;

以上就是几种将字符串转换为数字的方法。需要注意的是,在使用这些方法时,字符串必须符合对应的格式。如果字符串无法转换为数字,将会产生 undefined behavior。因此,在实际开发中应当对用户输入进行校验,避免出现转换错误。

  
  
下一篇: C++特征简介

评论区