检查一个字符串(char *)是否可以被枚举

标签 c char decimal

我试图找到一种方法来检查读入的 char * 是否可以表示为数字(带或不带小数位)。本质上我是在问,如果我有一个包含以下内容的文本文件:

-1.9e-3
e9
1e9
1ee9
-1-.9e3
.9e3
.9.e3

它将能够识别第 1 行、第 3 行和第 6 行可以“枚举”为有效数字,而所有其他行都包含错误输入。我知道这可以用蛮力来完成,但可能有无数种可能是错误的。如果有一个函数可以读取整个 char * 并且可以只说“是的,该字符串可以表示为实际数字”或“不,该字符串不能转换为数字,那将会容易得多它打算成为。”

枚举是指字符串 (char *) 可以是它希望表示的数字。

最佳答案

只需使用 strtold() ,它会告诉你它是否成功,并且还会给你转换后的数字。

关于检查一个字符串(char *)是否可以被枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288414/

相关文章:

c - 链接到目标文件时出错

c - 指针和函数调用

c - 根据 POSIX 标准,在同一套接字上并行调用 send/recv 是否有效?

java - 将包含空格和数字的字符串转换为仅包含数字的 int 数组

c++ - 为什么我不能再给数组赋值

java - 如何将这段代码翻译成 GUI 可以读取的内容

c - 参数声明限制和编译器警告

c - 使用指针作为输入从自定义函数中手动拆分 C 中的字符串

c# - 在 C# 中格式化小数,至少保留 2 位小数

mysql - 十进制数据类型四舍五入值