strtol没有按预期工作

时间:2018-03-29 11:23:53

标签: c string strtol

我无法使用strtol将字符串转换为long。在字符串中的数字前面有一个前导"."返回0。 没有"." strtol按预期返回3456

#include <stdio.h>                                                              
#include <stdlib.h>   

int main ()
{                                                                   
    char str[20] = " . 3456\r\n";                                                                    

    long ret = strtol(str, NULL, 10);                                            
    printf("ret is %ld\n",ret);

    return(0);                                                                   
}

1 个答案:

答案 0 :(得分:3)

strto*库函数只会跳过前导空格。如果您想跳过其他文本,则需要手动完成。来自isxxx的{​​{1}}函数可以为此提供帮助:

ctype.h