词法分析器c++编写完成输入输出
时间: 2023-07-23 21:58:45 浏览: 43
以下是一个简单的词法分析器示例代码,可以识别出输入文本中的关键字和标识符,并将结果输出到控制台:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isKeyword(string str) {
string keywords[5] = {"if", "else", "while", "for", "switch"};
for (int i = 0; i < 5; i++) {
if (keywords[i] == str) {
return true;
}
}
return false;
}
bool isIdentifier(string str) {
if (str[0] >= 'a' && str[0] <= 'z') {
for (int i = 1; i < str.length(); i++) {
if (!(str[i] >= 'a' && str[i] <= 'z') && !(str[i] >= '0' && str[i] <= '9')) {
return false;
}
}
return true;
}
return false;
}
int main() {
string input;
cout << "请输入文本:";
getline(cin, input);
string token = "";
for (int i = 0; i < input.length(); i++) {
if (input[i] == ' ') {
if (isKeyword(token)) {
cout << "关键字:" << token << endl;
} else if (isIdentifier(token)) {
cout << "标识符:" << token << endl;
}
token = "";
} else {
token += input[i];
}
}
if (isKeyword(token)) {
cout << "关键字:" << token << endl;
} else if (isIdentifier(token)) {
cout << "标识符:" << token << endl;
}
return 0;
}
```
该程序首先提示用户输入文本,然后逐个字符地读入并分析。当遇到空格时,将字符累加为一个字符串,并判断其是否为关键字或标识符。如果是,则输出对应的类型和字符串值。最后,如果最后一个字符不是空格,则需要再次判断最后一个字符串的类型并输出。