📜  C++ strtol()(1)

📅  最后修改于: 2023-12-03 15:13:57.655000             🧑  作者: Mango

C++中的strtol()函数介绍

在C++中,我们经常需要将字符串(字符数组)转换为整数类型。这时候strtol()函数就派上用场了。strtol()函数的原型如下:

long strtol(const char* str, char** endptr, int base);

其中,str是要转换的字符串;endptr是一个指向字符指针的指针,用于指向转换后str中第一个无法转换的字符;base指定要用的进制数,可以是2、8、10、16中的任意一个,如果base为0,则会自动根据str的格式来选择进制数。

使用strtol()函数的一般步骤如下:

const char* str = "12345";
char* endptr;
long num = strtol(str, &endptr, 10);

在执行完上面的代码后,num的值为12345,endptr指向'\0'(注意:如果str以非数字字符开头,则endptr指向第一个非数字字符)。

下面是一些常用的strtol()函数的用法:

// 将十六进制字符串转换为整型数
const char* str1 = "1a";
char* endptr1;
long num1 = strtol(str1, &endptr1, 16); // num1等于26

// 将八进制字符串转换为整型数
const char* str2 = "123";
char* endptr2;
long num2 = strtol(str2, &endptr2, 8); // num2等于83

// 将二进制字符串转换为整型数
const char* str3 = "1010";
char* endptr3;
long num3 = strtol(str3, &endptr3, 2); // num3等于10

有了strtol()函数,我们可以方便地进行字符串转换。但是需要注意的是,在使用strtol()函数时,需要注意一些细节问题,比如说输入字符串中是否有非数字字符等等,否则可能会导致程序出错。