C语言字符串函数

C语言 strtol()函数用于提取一个字符串中的数字部分(字符串的开头部分),且将数字部分转为long类型,它是C语言的字符串函数之一。

语法

语法如下:
long int strtol(const char *str, char **endptr, int base)

参数

  • str:指定要转为long类型的字符串,这个字符串必须以数字打头才可以提取到。
  • endptr:剩余字符串部分的对象地址引用。
  • base:基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。

功能

把字符串s转为一个long型的数字,通过参数edptr,我们还可以提取字符串的文字部分。

返回值

返回转换后的long值,如果转换失败,则返回0值。

程序示例

介绍一个例子,了解C语言 strtol()函数的使用方法。

 #include <stdio.h>
#include <string.h>

int main()
{
    char str[30] = "12345www.yxjc123.com";
    char *ptr;
    long ret;
    ret = strtol(str, &ptr, 10);

    printf("提取数字部分: %ld\n", ret);
    printf("剩余文字部分为: %s\n", ptr);
    return 0;
} 

程序运行结果:

提取数字部分: 12345
剩余文字部分为: www.yxjc123.com

我们将数字放到字符串末尾就提取不到了,看下面的例子。

#include <stdio.h>
#include <string.h>

int main()
{
    char str[30] = "www.yxjc123.com12345";
    char *ptr;
    long ret;
    ret = strtol(str, &ptr, 10);

    printf("提取数字部分: %ld\n", ret);
    printf("剩余文字部分为: %s\n", ptr);
    return 0;
} 
输出:
提取数字部分: 0
剩余文字部分为: www.yxjc123.com12345