用c语言做出浮点数的识别的词法分析器
时间: 2023-10-27 11:05:59 浏览: 118
好的,关于浮点数的词法分析器,可以用C语言实现。下面是一个简单的示例代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[50];
float num;
int i, j, k, len, flag;
printf("请输入一个字符串:");
scanf("%s", input);
len = strlen(input); // 获取输入字符串的长度
// 判断输入字符串是否为浮点数
flag = 1;
for (i = 0; i < len; i++) {
// 判断是否为数字或小数点
if (!isdigit(input[i]) && input[i] != '.') {
flag = 0;
break;
}
// 判断小数点是否唯一
if (input[i] == '.') {
k = 0;
for (j = 0; j < len; j++) {
if (input[j] == '.') {
k++;
}
}
if (k > 1) {
flag = 0;
break;
}
}
}
// 输出结果
if (flag == 1) {
num = atof(input);
printf("%.2f\n", num);
} else {
printf("不是浮点数\n");
}
return 0;
}
```
该代码首先读取一个字符串,然后判断该字符串是否为浮点数。如果是浮点数,则将其转换为浮点型并输出,否则提示不是浮点数。在判断过程中,首先遍历整个字符串,判断是否只包含数字和小数点,如果不是则认为不是浮点数。其次,判断小数点是否唯一,如果小数点多于一个,则也认为不是浮点数。最后根据判断结果输出相应的结果。
阅读全文