c语言编程笔录

首页 > C语言 > c语言

c语言

c语言 strtol

更新时间:2023-09-19

strtol函数介绍

strtol(string to long)是一个C库函数,用于将字符串转换为长整型(long)数值。它可以处理带有可选前缀和可选指定进制的字符串,并返回转换后的长整型数值。

strtol函数的函数原型和参数

strtol函数的函数原型如下:

long strtol(const char* str, char** endptr, int base);

参数解释:

  • str:需要进行转换的字符串。
  • endptr:用于存储不符合转换格式的第一个字符的指针,可以为NULL。
  • base:进制数,可以是2至36之间的任意值。如果base为0,则根据字符串的前缀来确定进制数,如果没有前缀,默认为十进制。

strtol函数的返回值和异常情况

strtol函数的返回值为转换后的长整型数值。如果发生以下情况,则返回0:

  • 无法进行有效的转换(例如空字符串)。
  • 转换结果超出了长整型的范围。在这种情况下,errno会被设置为ERANGE
  • 字符串中包含了无效的字符。在这种情况下,errno会被设置为EINVAL

使用示例

以下示例演示了如何使用strtol函数将字符串转换为长整型数值:

#include 
#include 

int main() {
    char* str = "12345";
    char* end;
    long value = strtol(str, &end, 10);

    printf("转换结果: %ld\n", value);
    printf("未转换部分: %s\n", end);
    return 0;
}

上述示例将字符串"12345"转换为长整型数值,并打印出转换结果和未转换部分。在这个例子中,转换结果为12345,并且未转换部分为空。

总结

strtol函数是C语言中用于将字符串转换为长整型的重要函数。通过指定合适的参数,我们可以将字符串转换为长整型数值,并且处理不同的进制和异常情况。要正确使用strtol函数,请务必了解函数原型、参数和返回值,以及可能的异常情况。