当前位置:首页C语言 > 正文

C语言中strtol函数的使用

作者:野牛程序员:2023-11-05 19:56:03C语言阅读 2821

strtol函数用于将一个字符串转换为长整数(long int),它的原型如下:

long int strtol(const char *str, char **endptr, int base);
  • str:要转换的字符串。

  • endptr:一个指向char*类型的指针,用于存储转换中止的字符的地址,可以为NULL

  • base:转换的基数,通常为 10,但也可以是 2、8、16 等。

以下是一个示例用法:

#include <stdio.h>
#include <stdlib.h>

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

    if (endptr == str) {
        printf("无法进行有效转换\\n");
    } else if (*endptr != '\\0') {
        printf("部分转换成功:%ld,未转换部分:%s\\n", num, endptr);
    } else {
        printf("完全转换成功:%ld\\n", num);
    }

    return 0;
}

上述代码中,strtol 将字符串 "12345" 转换为长整数,并存储在 num 变量中。如果转换成功,endptr 将指向字符串的结尾(\\0),否则,它将指向转换中止的位置。根据 endptr 的值,可以判断转换的结果是完全成功,部分成功还是无法进行有效转换。

注意,strtol还能处理负数、八进制、十六进制等不同进制的字符串转换,只需相应地设置 base 参数。例如,要将十六进制字符串 "1A" 转换为长整数,可以将 base 设置为 16。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击