用c语言写一个能够识别标识符和整数的程序
时间: 2024-09-20 09:03:47 浏览: 63
编译原理实验一 海南大学
在C语言中,可以使用`ctype.h`库中的函数来判断字符是否为字母、数字或者其他特定类型的字符,进而识别标识符和整数。下面是一个简单的示例程序,它会尝试读取用户输入的一串字符,并判断它们是否符合标识符或整数的规则:
```c
#include <stdio.h>
#include <ctype.h>
int is_identifier(char c) {
return isalnum(c) || c == '_';
}
int is_integer(char* str) {
int i = 0;
while (str[i] != '\0') {
if (!isdigit(str[i]) && str[i] != '-') {
return 0; // 非数字字符不是整数
}
i++;
}
// 检查是否有前导负号
if (str[0] == '-' && i > 1 && isdigit(str[1])) {
return 1; // 正确的整数格式
} else if (i > 0 && isdigit(str[i])) {
return 1; // 正常正整数
}
return 0;
}
int main() {
char input[100];
printf("请输入字符串: ");
fgets(input, sizeof(input), stdin);
for (int i = 0; input[i] != '\n'; i++) { // 去除换行符
input[i] = tolower(input[i]); // 全部转换为小写便于比较
}
input[strlen(input) - 1] = '\0'; // 如果有多余空格,删除
if (is_identifier(input)) {
printf("这是一个标识符.\n");
} else if (is_integer(input)) {
printf("这是一个整数.\n");
} else {
printf("这不是一个有效的标识符或整数.\n");
}
return 0;
}
阅读全文