鱼C论坛

 找回密码
 立即注册
查看: 965|回复: 1

[已解决]请问strtol() 的 参数值 是 如何 影响 程序运行结果的

[复制链接]
发表于 2020-7-7 22:04:45 | 显示全部楼层 |阅读模式
10鱼币
请问 下面 这个 代码,strtol() 的 参数值 5 是 如何 影响 程序运行结果的,谢谢
#include <stdio.h>
#include <stdlib.h>

int main()
{
   char str[30] = "2030300 This is test";
   char *ptr;
   long ret;

   ret = strtol(str, &ptr, 5);
   printf("数字(无符号长整数)是 %ld\n", ret);
   printf("字符串部分是 %s.\n", ptr);

   return(0);
}
最佳答案
2020-7-7 22:04:46
long int strtol(const char *str, char **endptr, int base)
把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0


你给定的值会影响转换整数

举个例子,当base为2时,合法字符为‘0’,‘1’;

base为8时,合法字符为‘0’,‘1’,……‘7’;

base为10时,合法字符为‘0’,‘1’,……‘9’;

base 为16时,合法字符为‘0’,‘1’,……‘9’,‘a’,……‘f’;

base为24时,合法字符为‘0’,……‘9’,‘a’,……‘n’,

base为36时,合法字符为‘0’,……‘9’,‘a’,……‘z’;

但不区分大小写

最佳答案

查看完整内容

你给定的值会影响转换整数 举个例子,当base为2时,合法字符为‘0’,‘1’; base为8时,合法字符为‘0’,‘1’,……‘7’; base为10时,合法字符为‘0’,‘1’,……‘9’; base 为16时,合法字符为‘0’,‘1’,……‘9’,‘a’,……‘f’; base为24时,合法字符为‘0’,……‘9’,‘a’,……‘n’, base为36时,合法字符为‘0’,……‘9’,‘a’,……‘z’; 但不区分大小写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 22:04:46 | 显示全部楼层    本楼为最佳答案   
long int strtol(const char *str, char **endptr, int base)
把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0


你给定的值会影响转换整数

举个例子,当base为2时,合法字符为‘0’,‘1’;

base为8时,合法字符为‘0’,‘1’,……‘7’;

base为10时,合法字符为‘0’,‘1’,……‘9’;

base 为16时,合法字符为‘0’,‘1’,……‘9’,‘a’,……‘f’;

base为24时,合法字符为‘0’,……‘9’,‘a’,……‘n’,

base为36时,合法字符为‘0’,……‘9’,‘a’,……‘z’;

但不区分大小写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表