21xrx.com
2024-12-23 00:29:57 Monday
登录
文章检索 我的文章 写文章
C++中将字符串转换为整型数
2023-06-28 14:10:24 深夜i     --     --
C++ 字符串 整型数 转换

在C++中,字符串转换为整型数是一个很常见的操作,尤其是在处理用户输入、从文件中读取数据等场景中。C++提供了多种方式将字符串转换为整型数,本文将简要介绍这些方式,帮助大家更好地进行编程。

1. atoi函数

在C标准库中,有一个名为atoi的函数,可以将字符串转换为整型数。该函数的声明如下:


int atoi(const char *str);

该函数接受一个字符串作为参数,返回对应的整型数。例如:


#include <cstdlib>

#include <iostream>

int main() {

  char str[] = "-123";

  int num = atoi(str);

  std::cout << num << std::endl;

  return 0;

}

输出为-123。需要注意的是,如果字符串不符合数字的格式,或者超出了整型数的表示范围,会导致该函数返回不确定的值。

2. stringstream类

在C++中,还可以使用stringstream类将字符串转换为整型数。该类定义在头文件sstream中,可以像以下方式使用:


#include <sstream>

#include <iostream>

int main() {

  std::stringstream ss("-123");

  int num;

  ss >> num;

  std::cout << num << std::endl;

  return 0;

}

该程序的输出结果与上例相同。需要注意的是,使用该方法前需要包含头文件sstream。

3. stoi函数

在C++11标准中,添加了一个名为stoi的函数,可以将字符串转换为整型数。该函数的声明如下:


int stoi(const std::string& str, size_t* idx = 0, int base = 10);

该函数接受一个字符串作为参数,返回对应的整型数。如果指定了参数idx,则会在该参数中返回第一个未转换成功的字符的下标。如果指定了参数base,则会按照该进制进行转换。例如:


#include <string>

#include <iostream>

int main() {

  std::string str = "-123";

  int num = std::stoi(str);

  std::cout << num << std::endl;

  return 0;

}

该程序的输出结果与前两个例子相同。需要注意的是,使用该函数前需要包含头文件string。

总结:以上介绍了三种将字符串转换为整型数的方式,分别为C标准库中的atoi函数、C++标准库中的stringstream类以及C++11标准中的stoi函数。这些方式各有优缺点,开发者可以按照自己的需求进行选择,以便更好地实现程序功能。

  
  

评论区

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