资源简介
1、输入如下正确的常量说明串:
const count=10,sum=81.5,char1=‘f’,max=169,str1=“h*54 2..4S!AAsj”, char2=‘@’,str2=“aa!+h”;
输出:
count(integer,10)
sum(float,81.5)
char1(char, ‘f’)
max(integer,169)
str1(string,“h*54 2..4S!AAsj”)
char2(char, ‘@’)
str2(string,“aa!+h”)
int_num=2; char_num=2; string_num=2; float_num=1.
2、输入类似如下的保留字const错误的常量说明串:
Aconstt count=10,sum=81.5,char1=‘f’;
输出类似下面的错误提示信息:
It is not a constant declaration statement!
Please input a string again!
3、输入类似如下含常量名或常量值错误的常量说明串:
const count=10,12sum=81.5,char1=‘ff’,max=0016;
输出类似下面的错误提示信息:
count(integer,10)
12sum(Wrong! It is not a identifier!)
char1(Wrong! There are more than one char in ‘’.)
max(Wrong! The integer can’t be started with ‘0’.)
int_num=1; char_num=0; string_num=0; float_num=0.
代码片段和文件信息
#include
using namespace std;
int char_num=0string_num=0int_num=0float_num=0; // 字符值类型,0=字符,1=字符串,2=整数,3=浮点数
class zifu //建立字符类,存储一个字符串的信息
{
public:
int i;
char name[20];
char data[20];
int dataname;
void display()
{
i=0;
while(name[i]!=‘\0‘)
{
cout< i++;
}
cout<<“=“;
i=0;
while(data[i]!=‘\0‘)
{
cout< }
cout< cout< }
};
void input(char a[]) //输入函数
{
char stand[6]=“const“;
int i=0judge=0;
gets(a);
for(i=0;i<5;i++)
{
if(a[i]==stand[i])
judge++;
}
if(judge!=5 || a[5]!=‘ ‘)
{
cout<<“It is not a constant declaration statement! “;
cout<<“Please input a string again!“< input(a);
}
}
void sort(zifu aclass[]char b[]int & integerint & tag) //识别函数tag 类标记 integer 当前查找的位置(从第七个开始)
{
int i=0;
while(b[++integer]!=‘=‘)
{
if(b[integer]!=‘ ‘)
aclass[tag].name[i]=b[integer];
i++; //获取字符串名
}
aclass[tag].name[i]=‘\0‘;
i=0;
++integer;
while(b[integer]!=‘‘ && b[integer]!=‘;‘) //获取字符串值、值类型
{
if(b[integer]>=‘0‘ && b[integer]<=‘9‘)// 字符值类型,0=字符,1=字符串,2=整数,3=浮点数
aclass[tag].dataname=2;
else if(b[integer]==‘.‘) //浮点数判断。。。真麻烦
{
aclass[tag].dataname=3;
while(b[integer]!=‘‘ && b[integer]!=‘;‘)
{
aclass[tag].data[i]=b[integer];
integer++;i++;
}
}
else if(b[integer]>=‘a‘ && b[integer]<=‘z‘)
ac
- 上一篇:控制台俄罗斯方块C++源码
- 下一篇:C++实现简单编译器
相关资源
- 北邮-编译原理-词法分析
- 现代编译原理-C语言描述
- 编译原理实验报告+代码+使用说明
- 编译原理课程设计-C语言子集编译器
- 赋值语句翻译c语言实现四元式
- 编译原理用C++消除左递归
- 编译原理简易C编译器
- 实现语法分析器-编译原理
- 编译原理 LR分析器 c++代码
- 设计并实现TINYC语言的扫描程序TINYC
- LL(1)文法分析全过程(FIRST/FLLOW/S
- 编译原理 LR0项目集规范族的构造 L
- 山东大学编译原理实验源代码c++版
- 简单函数绘图语言的解释器
- Lex和Yacc从入门到精通.pdf
- 简易词法分析器——基于C语言
- LL(1)文法的实现-mfc-编译原理学习
- 词法分析代码内有报告
- 编译原理LL1文法的mfc实现含消除左递
- 编译原理词法分析实验
- pl/0语言的编译器
- C++实现编译原理自动机、LL1文法、及
- 编译原理语义分析程序 c++实现
- 编译原理 课程设计 DAG 报告+源码C++版
- 编译原理课程设计----语法分析器(
- 编译原理简单的编译器源码
- C语言实现一个编译器-编译原理南开大
- 编译原理课程实验报告词法分析器及
- 编译原理与技术李文生:LR分析法C+
- C语言简化编译器前端 编译原理 LR1
评论
共有 条评论