C语言中提供了经典的atoi函数进行字符串转整数的操作,但是atoi有一个致命的弱点,就是当字符串不符合整数格式的时候,返回值为0, 这样就不清楚是真的0,还是非法字符串了。还好C语言还提供了strtol,和strtof函数进行字符串转整数和double的操作。
下面这段代码简单的说明怎么使用strtol进行整数转换操作。
char str[] = "2.2";
char* e;
long value = strtol(str,&e,10);
if(*e != '\0' || errno != 0){
printf("Strtol failed in #%s#", e);
}else{
printf("value = %ld",value);
}