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
剩余文字部分为: 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
剩余文字部分为: www.yxjc123.com12345