在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函数还可以解析其他进制的数,如十进制、十六进制等,只需根据需要设置不同的基数参数。

linux strtol函数解析八进制

原文地址: https://www.cveoy.top/t/topic/iHHV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录