📜  在 C++ 中将字符串转换为 int(1)

📅  最后修改于: 2023-12-03 14:50:52.332000             🧑  作者: Mango

在 C++ 中将字符串转换为 int

在 C++ 中,有多种方法可以将字符串转换为整数。其中最常见的有使用 stoi、strtol、sscanf 函数等方式。下面我们将为大家介绍这些方法的使用。

stoi 函数

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 函数

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 函数

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 函数。需要根据具体的需求来选择合适的方法。