#include<stdio.h>
#include< string.h>
#include<stdlib.h>
char KeyWord[ 20][ 100]={
" begin ",
" end ",
" if ",
" while ",
" var ",
" procedure ",
" else ",
" for ",
" do ",
" int ",
" read ",
" write "
};
char yunsuanfu[]= " +-*/<>%= ";
char fenjiefu[]= " ,;(){}: ";
int main()
{
char test[]= " var a=10;\nvar b,c;\nprocedure p; \n\tbegin\n\t\tc=a+b\n\tend\n ";
int len_yunsuanfu=strlen(yunsuanfu);
int len_fenjiefu=strlen(fenjiefu);
puts(test);
int length=strlen(test),i,j,k;
for(i= 0;i<length;i++)
{
if(test[i]== ' '||test[i]== ' \n '||test[i]== ' \t ')
continue;
int tag= 0;
for(j= 0;j<len_fenjiefu;j++)
{
if(fenjiefu [j]==test[i]){
printf( " 分界符\t%c\n ",test[i]);
tag= 1;
break;
}
}
if(tag== 1)
continue;
tag= 0;
for(j= 0;j<len_yunsuanfu;j++)
{
if(yunsuanfu[j]==test[i]){
printf( " 运算符\t%c\n ",test[i]);
tag= 1;
break;
}
}
if(tag== 1)
continue;
if(test[i]>= ' 0 '&&test[i]<= ' 9 ')
{
printf( " 数字\t ");
while(test[i]>= ' 0 '&&test[i]<= ' 9 ')
{
printf( " %c ",test[i]);
i++;
}
printf( " \n ");
continue;
}
char temp[ 100];
j= 0;
while(test[i]>= ' 0 '&&test[i]<= ' 9 '||test[i]>= ' a '&&test[i]<= ' z '||test[i]>= ' A '&&test[i]<= ' Z '||test[i]== ' _ ')
{
temp[j++]=test[i];
i++;
}
i--;
temp[j++]= ' \0 ';
tag= 0;
for(j= 0;j< 20;j++){
if(strcmp(temp,KeyWord[j])== 0)
{
tag= 1;
printf( " 关键字\t%s\n ",temp);
break;
}
}
if(tag== 0)
printf( " 标识符\t%s\n ",temp);
}
}
#include< string.h>
#include<stdlib.h>
char KeyWord[ 20][ 100]={
" begin ",
" end ",
" if ",
" while ",
" var ",
" procedure ",
" else ",
" for ",
" do ",
" int ",
" read ",
" write "
};
char yunsuanfu[]= " +-*/<>%= ";
char fenjiefu[]= " ,;(){}: ";
int main()
{
char test[]= " var a=10;\nvar b,c;\nprocedure p; \n\tbegin\n\t\tc=a+b\n\tend\n ";
int len_yunsuanfu=strlen(yunsuanfu);
int len_fenjiefu=strlen(fenjiefu);
puts(test);
int length=strlen(test),i,j,k;
for(i= 0;i<length;i++)
{
if(test[i]== ' '||test[i]== ' \n '||test[i]== ' \t ')
continue;
int tag= 0;
for(j= 0;j<len_fenjiefu;j++)
{
if(fenjiefu [j]==test[i]){
printf( " 分界符\t%c\n ",test[i]);
tag= 1;
break;
}
}
if(tag== 1)
continue;
tag= 0;
for(j= 0;j<len_yunsuanfu;j++)
{
if(yunsuanfu[j]==test[i]){
printf( " 运算符\t%c\n ",test[i]);
tag= 1;
break;
}
}
if(tag== 1)
continue;
if(test[i]>= ' 0 '&&test[i]<= ' 9 ')
{
printf( " 数字\t ");
while(test[i]>= ' 0 '&&test[i]<= ' 9 ')
{
printf( " %c ",test[i]);
i++;
}
printf( " \n ");
continue;
}
char temp[ 100];
j= 0;
while(test[i]>= ' 0 '&&test[i]<= ' 9 '||test[i]>= ' a '&&test[i]<= ' z '||test[i]>= ' A '&&test[i]<= ' Z '||test[i]== ' _ ')
{
temp[j++]=test[i];
i++;
}
i--;
temp[j++]= ' \0 ';
tag= 0;
for(j= 0;j< 20;j++){
if(strcmp(temp,KeyWord[j])== 0)
{
tag= 1;
printf( " 关键字\t%s\n ",temp);
break;
}
}
if(tag== 0)
printf( " 标识符\t%s\n ",temp);
}
}
博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/
对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com
本文转自ma6174博客园博客,原文链接:http://www.cnblogs.com/ma6174/archive/2012/03/20/2407364.html
,如需转载请自行联系原作者