21xrx.com
2024-09-19 09:43:35 Thursday
登录
文章检索 我的文章 写文章
C++ 字符串转化为数字的方法
2023-07-04 02:14:59 深夜i     --     --
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++特征简介

评论区

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