21xrx.com
2024-12-22 22:03:55 Sunday
登录
文章检索 我的文章 写文章
C++中字符串转数字的方法
2023-07-04 17:46:46 深夜i     --     --
C++ 字符串 转换 数字 方法

在C++中,字符串转数字是一个常见的操作。无论是从用户输入的字符串或者从文件中读取的字符串,都有可能需要将其转换为数字进行计算或者比较。下面介绍几种常用的字符串转数字的方法。

1.使用stoi和stod函数

C++11引入了两个函数:stoi和stod,可以方便地将字符串转换为整数和浮点数。其中stoi函数将字符串转换为整数,stod函数将字符串转换为双精度浮点数。这两个函数都是在 头文件中定义的。例如,下面的代码将字符串s转换为整数:


#include <cstdlib>

#include <string>

#include <iostream>

int main() {

  std::string s = "123";

  int n = std::stoi(s);

  std::cout << n << std::endl; // 输出123

}

2.使用stringstream

stringstream是C++标准库中的一个类,可以将字符串转换为各种类型的值。使用stringstream需要包含 头文件。例如,下面的代码将字符串s转换为整数:


#include <sstream>

#include <string>

#include <iostream>

int main() {

  std::string s = "123";

  std::stringstream ss(s);

  int n = 0;

  ss >> n;

  std::cout << n << std::endl; // 输出123

}

3.使用atof和atoi函数

atof和atoi是C标准库中的函数,可以将字符串转换为双精度浮点数和整数。需要包含 头文件。例如,下面的代码将字符串s转换为双精度浮点数:


#include <cstdlib>

#include <string>

#include <iostream>

int main() {

  std::string s = "3.14";

  double d = std::atof(s.c_str());

  std::cout << d << std::endl; // 输出3.14

}

4.使用strtod和strtol函数

strtod和strtol是C标准库中的函数,可以将字符串转换为双精度浮点数和长整型。需要包含 头文件。例如,下面的代码将字符串s转换为双精度浮点数:


#include <cstdlib>

#include <string>

#include <iostream>

int main() {

  std::string s = "3.14";

  char* endptr = NULL;

  double d = std::strtod(s.c_str(), &endptr);

  std::cout << d << std::endl; // 输出3.14

}

总结

本文介绍了几种常见的将字符串转换为数字的方法,包括使用C++11的stoi和stod函数,使用stringstream类,使用C标准库中的atof和atoi函数,以及使用strtod和strtol函数。这些方法在实际开发中都有应用,开发者可以根据自己的需求选择合适的方法。

  
  

评论区

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