📅  最后修改于: 2023-12-03 14:39:57.792000             🧑  作者: Mango
在C++中,strtoumax()函数是一个用于将字符串转换为无符号整数的标准库函数。该函数能够将表示数字的字符串解析为对应的整数值,并返回该整数值。
#include <cstdlib>
uintmax_t strtoumax(const char* str, char** endptr, int base);
该函数有三个参数:
str
:待转换的字符串。endptr
:指向字符指针的指针,用于存储停止扫描的位置。如果不需要此信息,可以将其置为NULL
。base
:转换所用的基数。可以是2-36之间的任意值,或者0表示自动根据输入确定基数。该函数的返回值是转换后的无符号整数值。如果输入字符串不包含有效的数字,将返回0。
下面是一个使用strtoumax()函数的示例:
#include <cstdlib>
#include <iostream>
int main() {
const char* str = "12345";
char* endptr;
uintmax_t value = strtoumax(str, &endptr, 10);
if (endptr != str) {
std::cout << "转换后的值为:" << value << std::endl;
} else {
std::cout << "无效的输入字符串" << std::endl;
}
return 0;
}
以上代码将字符串"12345"转换为整数,并输出转换后的值。
endptr
指针设置为str
的值。因此,在使用函数的返回值前,应该通过比较endptr
和str
的地址来判断输入字符串是否有效。base
参数为0时,函数会根据str
的前缀来自动确定基数(比如"0x"表示十六进制,"0"表示八进制,否则默认为十进制)。strtoumax()函数是用于将字符串转换为无符号整数的有用函数,可以在C++中方便地完成字符串到整数的转换操作。使用此函数时,请注意对返回值和endptr
的检查,以确保转换操作的有效性。