- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include iostream #include ctype.h #include fstream #include string.h #include malloc.h
using namespace std;
ifstream fp(source.txt,ios::in); char cbuffer;
char *key[13]={if,else,for,while,do,return,break,continue,int,void
,main,const,printf}; // 关键
字
char *border[7]={ , , ; , { , } , ( , ) ,//}; // 分界符
char *arithmetic[6]={+ , - , * , / , ++ , --}; //运算符
char *relation[7]={ , = , = , , = , == ,!=}; // 关系运算符char *lableconst[80]; // 标识符
int constnum=40;
int lableconstnum=0;
int linenum=1; //统计常数和标识符数量int search(char searchchar[],int wordtype)
{
int i=0,t=0;
switch (wordtype)
{
case 1:
{ for (i=0;i=12;i++) //关键字
{
if (strcmp(key[i],searchchar)==0) return(i+1);
}
return(0);} case 2:
{
for (i=0;i=6;i++) //分界符
{
if (strcmp(border[i],searchchar)==0) return(i+1);
}
return(0);
}
case 3:
{
for (i=0;i=5;i++) //运算符
{
if (strcmp(arithmetic[i],searchchar)==0) return(i+1);
}
return(0);
}
case 4:
{
for (i=0;i=6;i++) //关系运算符
{
if (strcmp(relation[i],searchchar)==0) return(i+1);
}
return(0);
}
case 5:
{
for (t=40;t=constnum;t++) //常数
{
if (strcmp(searchchar,lableconst[t])==0)//判断该常数是否已出现过return(t+1);
}
lableconst[t-1]=(char *)malloc(sizeof(searchchar));// 为新的元素分配内存空间strcpy(lableconst[t-1],searchchar);// 为数组赋值lableconst 指针数组名constnum++; //常数个数自加
return(t);
}
case 6:
{
for (i=0;i=lableconstnum;i++)
{
if (strcmp(searchchar,lableconst[i])==0) //判断标识符是否已出现过return(i+1);
}
lableconst[i-1]=(char *)malloc(sizeof(searchchar)); strcpy(lableconst[i-1],searchchar);
lableconstnum++; //标识符个数自加return(i);
}
default:cout错误!;
}
}
char alphaprocess(char buffer) //字符处理过程
{
int atype; int i=-1;
char alphatp[20];
while ((isalpha(buffer))||(isdigit(buffer)))
位于 ctype.h 中
{
// 这两个函数分别是判字符和判数字函数
alphatp[++i]=buffer; fp.get(buffer);
}
alphatp[i+1]=\0;// 在末尾添加字符串结束标志if (atype=search(alphatp,1))
coutlinenum: linenum String= alphatp\t\t\t 关键字endl; else
{
atype=search(alphatp,6); //标识符
coutlinenum: linenum String= alphatp\t\t\t 标识符endl;
}
return(buffer);
}
char digitprocess(char buffer) //数字处理过程
{
int i=-1;
c
您可能关注的文档
- 春江花月夜教学设计及反思(精).docx
- 春教学设计分析和总结.docx
- 春节的传统与新变.docx
- 春节期间如何吃更健康.docx
- 春节英语手抄报内容精选.docx
- 春联集锦(精选版).docx
- 春联集锦分析和总结.docx
- 春暖花开分析和总结.docx
- 春天的心阅读答案.docx
- 春天是一本书.docx
- 新能源汽车出海2025:海外市场品牌传播效果评估报告.docx
- 2025-2026学年初中数学六年级下册(2024)人教版(五四制)(2024)教学设计合集.docx
- 2025年神经疾病治疗中侵入式脑机接口电极材料创新设计与应用.docx
- 2025年医学分析-《药理学》第2章 药物效应动力学.pptx
- 2025年地热能供暖系统智能化改造成本效益分析报告.docx
- 智能养老时代2025年时间银行互助模式市场潜力研究报告.docx
- 2025-2030年中国新能源汽车电池回收利用产业废弃物回收技术创新报告.docx
- 2025年医学分析-《医学遗传学》重点整理.pptx
- 2025年储能系统在电动汽车充电站的投资风险分析报告.docx
- 2025年光伏农业与乡村旅游融合发展的政策环境与机遇分析报告.docx
文档评论(0)