#include <stdio.h>
#include <stdlib.h>
int main()
{
char * spt = " 1100100.1111end....";
printf("将字符串%s转成数值类型:====2int:%d====2long:%ld====2double:%f\n", spt, atoi(spt), atol(spt), atof(spt) );
/*
1.int atoi(const char *nptr)
2.long int atol(const char *nptr)
3.double atof(const char *nptr)
注意事项:1.函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)
2.如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0
3.该函数要求被转换的字符串是按十进制数理解的
*/
char *endpt;
long int l1 = strtol(spt,&endpt,2);
printf("原字符串为:%s====long:%ld====剩余的:%s\n", spt ,l1 ,endpt );
/*
1.long int strtol(const char *nptr,char **endptr,int base);
2.unsigned long int strtoul(const char *nptr,char **endptr,int base);
3.double strtod(const char *nptr,char **endptr,int base);
参数1:指定被扫描的字符串
参数2:endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。
例如 char *pos;
strtol("123abc", &pos, 10);
strtol返回123
pos指向字符串中的字母a。
如果字符串开头没有可识别的整数,
例如char *pos;
strtol("ABCabc", &pos, 10);
则strtol返回0,pos指向字符串开头,可以据此判断这种出错的情况,而这是atoi处理不了的
参数3:不仅可以识别十进制整数,还可以识别其它进制的整数,取决于base参数,
比如 strtol("0XDEADbeE~~", NULL, 16)
返回0xdeadbee的值,s
trtol("0777~~", NULL, 8)返回0777的值。
*/
return 0;
}