【发布时间】:2018-03-29 11:23:52
【问题描述】:
我无法使用 strtol 将字符串转换为长字符串。在字符串中的数字之前有一个前导 "." 返回 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);
}
【问题讨论】:
-
你为什么希望
strtol跳过前导点? -
用例是什么?你想要一个值为 3456 的 long 还是一个值为 0.3456 的 double?
-
@KarstenKoop 长与 3456。
.不是十进制值,它只是传感器返回的字符,所以我想忽略它。 -
@homeGrown 你想用减号做什么?
-
@zwol 它不报告负值。我只问过忽略
.