凯天建设发展集团有限公司网站,北京百度推广开户,网站如何做收录排行,东莞网站建设公司企业strtol 函数包含在 C 语言标准库的 stdlib.h 头文件中#xff0c;用于将字符串转换为长整数#xff08;long int#xff09;。它可以处理各种格式的字符串#xff0c;并且可以指定进制。
strtol 函数的时间复杂度是 O(n)#xff0c;其中 n 是输入字符串的长度。 …strtol 函数包含在 C 语言标准库的 stdlib.h 头文件中用于将字符串转换为长整数long int。它可以处理各种格式的字符串并且可以指定进制。
strtol 函数的时间复杂度是 O(n)其中 n 是输入字符串的长度。 函数原型
long int strtol(const char *nptr, char **endptr, int base);
参数分析 strtol(字符串名字, 字符指针变量的地址, 进制); 参数一nptr ◦ 指向要转换的字符串的指针。 ◦ 字符串可以包含前导空白字符这些字符会被忽略。 ◦ 字符串可以以 0x 或 0X 开头表示十六进制数。 ◦ 字符串可以以 0 开头表示八进制数。 ◦ 其他情况下字符串被视为十进制数。 参数二endptr ◦ 指向一个字符指针的指针用于存储转换结束后的字符串位置。 ◦ 如果 endptr 不为 NULLstrtol 会将转换结束后的字符串位置存储在 endptr 指向的指针中。 ◦ 如果 endptr 为 NULL则忽略此参数。 参数三base ◦ 指定转换的进制范围是 2 到 36。 ◦ 如果 base 为 0strtol 会根据字符串的前缀自动判断进制 ■ 如果字符串以 0x 或 0X 开头视为十六进制。 · ■ 如果字符串以 0 开头视为八进制。 ■ 否则视为十进制。 返回值 成功转换时返回转换后的长整数。如果字符串中没有有效的数字返回 0。如果转换结果超出 long int 的范围返回 LONG_MAX 或 LONG_MIN并设置 errno 为 ERANGE 使用样例
想了解实例点这里字符串提取数字求和⭐-CSDN博客
#include stdio.h
#include stdlib.hint main() {const char *str1 01234a5abc;const char *str2 0x1234a5abckertty;const char *str3 01234a5abcww;char *aa;char *bb;char *cc;long int num;// 十进制转换num strtol(str1,aa,8);printf(str1: %s, num: %ld aa :%s\n, str1, num,aa);// 十六进制转换num strtol(str2, bb, 16);printf(str2: %s, num: %ld, bb: %s\n, str2, num, bb);// 八进制转换num strtol(str3, cc, 8);printf(str3: %s, num: %ld, cc: %s\n, str3, num, cc);return 0;
}//使用strtol前必须定义一个字符指针变量
输出
str1: 01234a5abc, num: 668 aa :a5abc
str2: 0x1234a5abckertty, num: 2147483647, bb: kertty
str3: 01234a5abcww, num: 668, cc: a5abcww --------------------------------
Process exited after 0.2409 seconds with return value 0
请按任意键继续. . .