strtol使用方法
时间: 2024-06-25 08:00:19 浏览: 145
`strtol`是C语言中的一个标准库函数,用于将字符串转换为长整型(`long int`)或长 long 整型(`long long int`)。其函数原型通常如下:
```c
long strtol(const char *nptr, char **endptr, int base);
long long ll_strtol(const char *nptr, char **endptr, int base);
```
这里参数解释如下:
- `nptr`:指向要转换的字符串的指针。
- `endptr`:指向存储解析结束位置的指针,转换后会更新到这里,指向第一个未被转换的字符。
- `base`:可选,指定输入字符串的基数(进制),默认为10(十进制),其他常见值包括2(二进制)、8(八进制)和16(十六进制)。
使用方法步骤如下:
1. 包含头文件:`#include <stdlib.h>` 或 `<string.h>`(C++中可能用后者)。
2. 定义一个字符串,如:`const char *input = "12345";`
3. 调用函数,例如将字符串转换为`long`类型:
```c
long result;
char *end;
result = strtol(input, &end, 10);
```
如果转换成功,`end`将指向字符串结束位置。如果遇到非数字字符,则返回0,并设置`errno`为`ERANGE`(超出了`long`类型的范围)。
4. 检查结果和`endptr`:如果`end == nptr`,表示没有进行转换,可能是因为输入不是一个有效的数字。检查`errno`以确定错误原因。
阅读全文