C语言字符串转长整型strtol函数

C语言strtol函数教程

C 语言 中我们要将一个 字符串 转成 长整型 ,我们可以使用 strtol 函数。strtol 函数把参数所指向的字符串根据给定的基数转换为一个长整数(类型为 long int 型)。

strtol函数详解

语法

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

参数

参数 描述
str 要转换为长整数的字符串。
endptr 对类型为 char* 的对象的引用,其值由函数设置为 str 中数值后的下一个字符。
base 基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。

返回值

该函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。

说明

base 必须介于 2 和 36(包含)之间,或者是特殊值 0。

技术细节

使用 strtol 函数,需要引入 stdlib.h 头文件。

案例

C语言字符串转长整型

使用 strtol() 函数,实现将字符串转长整型

#include <stdio.h> #include <stdlib.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); char str[] = "12345.6789"; long ret; ret = strtol(str, NULL, 10); printf("Num Ret = %ld\n", ret); return 0; }

程序运行后,控制台输出如下:

34_C语言字符串转长整型strtol函数.png

我们首先定义了一个 字符数组 str,里面存放的浮点数,接着,我们使用了 strtol 函数,实现了将字符数组 str 转成了 long 类型,并赋值给 ret。

因为,我们的字符数组没有字符串部分,因此,strtol 函数的第二个参数,我们赋值为了 NULL。最后,我们使用了 printf 打印出了转换后的长整数。

C语言字符串转长整型

使用 strtol() 函数,实现将字符串转长整型

#include <stdio.h> #include <stdlib.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); char str[] = "12345.6789HaiCoder123!"; long ret; char *strRet; ret = strtol(str, &strRet, 10); printf("Num Ret = %ld, Str Ret = %s\n", ret, strRet); return 0; }

程序运行后,控制台输出如下:

35_C语言字符串转长整型strtol函数.png

这次,我们使用 strtol 将字符串转成长整数,同时,我们传入了第二个参数,实现了,将字符串也转换了出来,我们可以看到,小数点以及小数点之后的都被算成了字符串部分。

C语言strtol函数总结

在 C 语言中我们要将一个字符串转成长整型 ,我们可以使用 strtol 函数。