21xrx.com
2025-03-25 21:54:49 Tuesday
文章检索 我的文章 写文章
C++中字符串转整型的方法
2023-06-23 22:13:28 深夜i     --     --
C++ 字符串 转换 整型 方法

在C++中,将字符串转换为整数是一个常见的操作。这个操作可以通过各种方法实现,包括atoi函数、sscanf函数和使用标准库中的stoi函数。本文将介绍这三种方法。

1. 使用atoi函数

atoi函数是C++标准库中的函数,它可以将一个字符串转换为整数。它的原型如下:

int atoi(const char* str);

该函数接受一个指向字符串的指针,并将字符串转换为一个整数。如果字符串不是一个有效的整数格式,则返回0。例如:

#include <cstdlib>
#include <iostream>
using namespace std;
int main(){
  char str[] = "123";
  int num = atoi(str);
  cout << num << endl;
  return 0;
}

上述代码将输出123,因为它将字符串"123"转换为整数123。

2. 使用sscanf函数

sscanf函数也可以将一个字符串转换为整数。它的原型如下:

int sscanf(const char* str, const char* format, ...);

该函数接受两个参数,第一个参数是一个指向字符串的指针,第二个参数是一个格式化字符串。sscanf函数根据格式化字符串中的指示符,将字符串中的内容转化为指定的类型。例如:

#include <cstdio>
#include <iostream>
using namespace std;
int main(){
  char str[] = "123";
  int num;
  sscanf(str, "%d", &num);
  cout << num << endl;
  return 0;
}

上述代码的输出结果也是123。

3. 使用stoi函数

C++11引入了一个新函数stoi,可以将一个字符串转换为一个整数。stoi函数的原型如下:

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

该函数接受一个字符串参数,并返回一个整数。如果字符串不是一个有效的整数格式,则会抛出一个异常。例如:

#include <iostream>
#include <string>
using namespace std;
int main(){
  string str = "123";
  int num = stoi(str);
  cout << num << endl;
  return 0;
}

上述代码的输出结果也是123。

总结

以上是C++中将字符串转换为整数的三种方法。这些方法可以操作不同数据类型的字符串,但是stoi是最新的也是最安全的方法。根据需要选取任何一种方法都可以满足我们的需求。

  
  

评论区