21xrx.com
2024-12-23 00:23:26 Monday
登录
文章检索 我的文章 写文章
C++如何将string转换为int
2023-07-01 18:03:18 深夜i     --     --
C++ string 转换 int stoi函数

C++是一种高效的编程语言,它也是开发大型软件的首选语言。在C++编程中,我们可能需要将一个字符串转换为整数类型。这个问题很常见,但是对于初学者来说,可能比较困难。

幸运的是,C++为我们提供了一些内置函数来帮助完成这个任务。下面是一些方法来将字符串转换为整数类型。

方法一: atoi()函数

C++的头文件中提供了 atoi() 函数,用于将一个字符串转换为整数类型。最常见的使用方法是:


#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

  string str = "1234";

  int num = atoi(str.c_str());

  cout << "The num is: " << num << endl;

  return 0;

}

这个函数的参数是一个 C 风格的字符串,而返回值则是一个整数。需要注意的是,必须在字符串后面添加 \0 终止符,否则这个函数会报错。

方法二: stringstream类

另一种将字符串转换为整数的方法是使用stringstream类,它在头文件 中定义。该类中的 str() 函数可以将字符串作为参数传递,并允许我们像使用一个文件一样使用字符串中的数据。


#include <iostream>

#include <sstream>

using namespace std;

int main()

{

  string str = "1234";

  int num;

  stringstream ss(str);

  ss >> num;

  cout << "The num is: " << num << endl;

  return 0;

}

在这个例子中,我们创建了一个 stringstream 对象 ss,并将字符串作为参数传递给它。然后,我们使用 ss >> num 语法将字符串中的整数赋值给我们定义的 num 变量。

方法三: stoi() 函数

C++11中新增了一个 stoi() 函数,它可以等效替代 atoi() 和 stringstream 方法。它带有两个参数,一个是要转换的字符串,另一个是基数(例如十进制、二进制、十六进制等)。如果不指定基数参数,则默认为十进制。


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "1234";

  int num = stoi(str);

  cout << "The num is: " << num << endl;

  return 0;

}

在这个例子中,我们使用了 C++11 中新添加的 stoi() 函数来将字符串转换为整数类型。该函数将字符串转换为10进制数,可以快速完成字符串转换。

总结

以上是将字符串转换为整数的三种常见方法。在实际编程中,要注意检查转换前的字符串是否为数字,以及处理转换后的整数是否会溢出。在对 C++ 的 string 和其他类型进行转换时,了解函数的具体用法非常重要。

  
  

评论区

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