用C语言识别一段程序,规定Int为1, If为2, Else为3, While识别为4, do 5 Continue 6 标识符 10 数字 11 + 13 - 14 * 15 / 16
时间: 2024-03-23 08:41:02 浏览: 45
好的,我会尝试回答你的问题。根据你的要求,我可以提供一个简单的C程序,用于识别另一个C程序中的关键字和运算符。具体实现如下:
```
#include <stdio.h>
#include <string.h>
int main() {
char input[1000];
int len, i, j;
printf("请输入一段C程序:\n");
fgets(input, 1000, stdin);
len = strlen(input);
printf("识别结果:\n");
for (i = 0; i < len; i++) {
if (input[i] == 'i' && input[i+1] == 'n' && input[i+2] == 't') {
printf("1 ");
i += 2;
} else if (input[i] == 'i' && input[i+1] == 'f') {
printf("2 ");
i += 1;
} else if (input[i] == 'e' && input[i+1] == 'l' && input[i+2] == 's' && input[i+3] == 'e') {
printf("3 ");
i += 3;
} else if (input[i] == 'w' && input[i+1] == 'h' && input[i+2] == 'i' && input[i+3] == 'l' && input[i+4] == 'e') {
printf("4 ");
i += 4;
} else if (input[i] == 'd' && input[i+1] == 'o') {
printf("5 ");
i += 1;
} else if (input[i] == 'c' && input[i+1] == 'o' && input[i+2] == 'n' && input[i+3] == 't' && input[i+4] == 'i' && input[i+5] == 'n' && input[i+6] == 'u' && input[i+7] == 'e') {
printf("6 ");
i += 7;
} else if (input[i] >= 'a' && input[i] <= 'z') {
printf("10 ");
for (j = i+1; j < len; j++) {
if (input[j] < 'a' || input[j] > 'z') break;
}
i = j-1;
} else if (input[i] >= '0' && input[i] <= '9') {
printf("11 ");
for (j = i+1; j < len; j++) {
if (input[j] < '0' || input[j] > '9') break;
}
i = j-1;
} else if (input[i] == '+') {
printf("13 ");
} else if (input[i] == '-') {
printf("14 ");
} else if (input[i] == '*') {
printf("15 ");
} else if (input[i] == '/') {
printf("16 ");
}
}
printf("\n");
return 0;
}
```
这个程序使用了一个字符数组 `input` 来存储输入的C程序,然后逐个字符地扫描这个字符串,根据关键字和运算符的定义,输出对应的数字。其中 `fgets()` 函数用于从标准输入中读取用户输入的字符串,`strlen()` 函数用于获取字符串的长度,`printf()` 函数用于输出结果。
阅读全文