c - C 中检测字符串是 double 还是 long

标签 c double long-integer

我正在处理一个 char[],其中包含应表示双数值或长数字的文本。
我需要编写一个函数来检测代表的是上述哪种数据类型(如果有)。

我考虑过使用 strtol() 并检查它是否无法解析整个字符串,如果失败,则使用 strtod()。

我很乐意看看是否有更好的选择。 谢谢。

最佳答案

I thought about using strtol() and check if it fails to parse the entire string, and if it fails, using strtod().

我认为这是一个好主意,而且我认为没有更好的主意了。实现您自己的解析例程通常是一个坏主意。

在调用 strtol 之前,我会修剪字符串的尾随空格,以避免漏报。

关于c - C 中检测字符串是 double 还是 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696242/

相关文章:

Perl 尾数与其他 double 不同

java - 是否可以检查字符串数组,如果其中的元素可以转换为 int 或 double ?

c++ - C/C++ 以一定的精度高效地四舍五入小数

java - java.util.GregorianCalendar 在 1976 年 3 月 28 日到 3 月 29 日之间发生了什么?

c++ - 确定不安全转换的警告 clang

c - 初始化常量变量

c - C中转义字符的大小

c 程序 - 创建固定大小的突发

c - 为什么不使用融合乘加运算?

java - Java 中的 Convert.ToInt64 等价物