📅  最后修改于: 2023-12-03 14:50:52.332000             🧑  作者: Mango
在 C++ 中,有多种方法可以将字符串转换为整数。其中最常见的有使用 stoi、strtol、sscanf 函数等方式。下面我们将为大家介绍这些方法的使用。
stoi 函数是 C++ 11 引入的一个函数,用于将字符串转换为整数。其函数原型如下:
int stoi(const string& str, size_t* pos = nullptr, int base = 10);
其中:
str
:要转换的字符串;pos
:一个可选参数,可以用于返回转换停止的位置;base
:可选参数,用于指定进制,默认为 10。下面是一段使用 stoi 的示例代码:
#include <iostream>
#include <string>
int main()
{
std::string str = "123";
int num = std::stoi(str);
std::cout << num << std::endl;
return 0;
}
输出为:
123
strtol 函数是标准 C 库中的一个函数,也可以用于将字符串转换为整数。其函数原型如下:
long int strtol(const char* str, char** endptr, int base);
其中:
str
:要转换的字符串;endptr
:一个可选参数,可以用于返回转换停止的位置,在转换过程中遇到无效字符时停止转换;base
:用于指定进制,取值范围为 2 到 36,如果为 0,则表示根据字符串的前缀来判断进制。下面是一段使用 strtol 的示例代码:
#include <iostream>
#include <cstdlib>
int main()
{
char str[] = "123";
char* endptr;
long int num = std::strtol(str, &endptr, 10);
std::cout << num << std::endl;
return 0;
}
输出为:
123
sscanf 函数也是标准 C 库中的一个函数,可以用于将字符串按指定格式转化为任意类型的值。其函数原型如下:
int sscanf(const char* str, const char* format, ...);
其中:
str
:要转换的字符串;format
:指定转换格式的字符串,类似 printf 函数的格式字符串。下面是一段使用 sscanf 的示例代码:
#include <iostream>
#include <cstdio>
int main()
{
char str[] = "123";
int num;
std::sscanf(str, "%d", &num);
std::cout << num << std::endl;
return 0;
}
输出为:
123
在 C++ 中,将字符串转换为整数是一件非常常见的事情。本文介绍了三种常用的方法:stoi 函数、strtol 函数和 sscanf 函数。需要根据具体的需求来选择合适的方法。