linux strtol函数解析八进制
在Linux中,strtol函数可以用于将字符串转换为长整型数。当解析八进制数时,可以在字符串前面加上"0"或"0o"前缀。
下面是一个示例代码,演示如何使用strtol函数解析八进制数:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *str = "0123"; // 八进制数123
char *endptr;
long int num;
num = strtol(str, &endptr, 8);
if (endptr == str) {
printf("无效的输入\n");
} else {
printf("解析的八进制数为:%ld\n", num);
}
return 0;
}
在上面的示例中,strtol函数的第一个参数是待解析的字符串,第二个参数是一个指针,用于存储解析结束后的字符串的下一个字符的地址。第三个参数是一个整数,指定解析的基数,这里使用8表示八进制。函数返回解析后的长整型数。
如果解析成功,endptr将指向字符串中第一个非法字符的位置。如果解析失败,endptr将等于str,即指向字符串的起始位置。
在示例中,strtol函数解析字符串"0123"为八进制数123,并将结果存储在num变量中。然后,根据endptr的值判断解析是否成功,并打印解析结果。
输出结果为:
解析的八进制数为:83
注意,strtol函数还可以解析其他进制的数,如十进制、十六进制等,只需根据需要设置不同的基数参数。
原文地址: https://www.cveoy.top/t/topic/iHHV 著作权归作者所有。请勿转载和采集!