高玺(源文件).c
来自「很好用,请指教.可能还有一些错误请大家指出来,我会用心再改的,谢谢.」· C语言 代码 · 共 297 行
C
297 行
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int flag=0;
int i;
int k;
char cch;
char bchar;
char str[100];
char t;
FILE *fp;
void Pushback(char c)
{
bchar=c;
flag=1;
}
char GetC( )
{
if(flag==1)
{
flag=0;
return bchar;
}
t=getc(fp);
if(t=='\n'||t=='\t'||t=='\r')
t=' ';
return t;
}
int SearchKey( )
{
char StrToken[50][10]={"auto","break","case","char","const",
"continue","default","do","double","else","enum","extern",
"float","for","goto","if","int","long","main","printf","register","return","scanf",
"short","signed","sizeof","static","struct","switch",
"typedef","union","unsigned","void","volatile","while"};
for(i=0;i<50;i++)
{
if(strcmp(StrToken[i],str)==0)
return i;
}
return 0;
}
void GetNextWord( )
{
int k=0;
int x;
cch=GetC();
while(cch==' ')
{
cch=GetC( );
}
str[0]=cch;
if((cch>='a'&&cch<='z')||(cch>='A'&&cch<='Z'))
{
str[++k]=cch;
cch=GetC( );
while((cch>='a'&&cch<='z')||(cch>='A'&&cch<='Z')||
(cch>='0'&&cch<='9'))
{
str[k++]=cch;
cch=GetC( );
}
str[k]='\0';
Pushback(cch);
if(SearchKey( )==0)
printf("(2000 ,%s )",str);
else
printf("(10%d ,%s )",i,str);
}
else if(cch<='9'&&cch>='0')
{
while(cch<='9'&&cch>='0')
cch=GetC( );
if(cch=='E'||cch=='D')
cch=GetC( );
if(cch=='+'||cch=='-')
{
cch=GetC( );
if(cch<='9'&&cch>='0')
cch=GetC( );
while(cch<='9'&&cch>='0')
cch=GetC( );
Pushback(cch);
printf("(3000 )");
}
else if(cch<='9'&&cch>='0')
{
while(cch<='9'&&cch>='0')
cch=GetC( );
Pushback(cch);
printf("(3000 )");
}
else if(cch=='.')
{
while(cch<='9'&&cch>='0')
cch=GetC( );
if(cch=='E'||cch=='D')
cch=GetC( );
if(cch=='+'||cch=='-')
{
cch=GetC( );
if(cch<='9'&&cch>='0')
cch=GetC( );
while(cch<='9'&&cch>='0')
cch=GetC( );
Pushback(cch);
printf("(3000 )");
}
else if(cch<='9'&&cch>='0')
{
while(cch<='9'&&cch>='0')
cch=GetC( );
Pushback(cch);
printf("(3000 )");
}
else
Pushback(cch);
printf("(3000 )");
}
}
else
{
switch(cch)
{
case '+':
{
cch=GetC( );
switch(cch)
{
case '+':{printf("(4001 ,++ )");break;}
case '=':{printf("(4002 ,+= )");break;}
default:{Pushback(cch);
printf("(4003 ,+ )");break;}
}
break;
}
case '-':
{
cch=GetC( );
switch(cch)
{
case '-':{printf("(4004 ,-- )");break;}
case '=':{printf("(4005 ,-= )");break;}
case '>':{printf("(4006 ,-> )");break;}
default:{Pushback(cch);
printf("(4007 ,- )");break;}
}
break;
}
case '*':
{
cch=GetC( );
if(cch=='=')
printf("(4008 ,*= )");
else
{
Pushback(cch);
printf("(4009 ,* )");
}
break;
}
case '/':
{
cch=GetC( );
if(cch=='=')
printf("(4010 ,/= )");
else
{
Pushback(cch);
printf("(4011 ,/ )");
}
break;
}
case '<':
{
cch=GetC( );
switch(cch)
{
case'=':{printf("(4012 ,<= )");break;}
case'<':
{
cch=GetC( );
if(cch=='=')
printf("(4013 ,<<= )");
else
{
Pushback(cch);
printf("(4014 ,<< )");
}
break;
}
default:{Pushback(cch);
printf("(4015 ,< )");break;}
}
break;
}
case '>':
{
cch=GetC( );
switch(cch)
{
case'=':{printf("(4016 ,>= )");break;}
case'>':
{
cch=GetC( );
if(cch=='=')
printf("(4017 ,>>= )");
else
{
Pushback(cch);
printf("(4018 ,>> )");
}
break;
}
default:{Pushback(cch);
printf("(4019 ,> )");
break; }
}
break;
}
case '=':
{
cch=GetC( );
if(cch=='=')
printf("(4020 ,== )");
else
{
Pushback(cch);
printf("(4021 ,= )");
}
break;
}
case '%':
{
cch=GetC( );
if(cch=='=')
printf("(4022 ,%= )");
else
{
Pushback(cch);
printf("(4023 ,% )");
}
break;
}
case '(':
{
printf("(5001 ,( )");
break;
}
case ')':
{
printf("(5002 ,) )");
break;
}
case '{':
{
printf("(5003 ,{ )");
break;
}
case '}':
{
printf("(5004 ,} )");
break;
}
case ';':
{
printf("(5005 ,; )");
break;
}
case ',':
{
printf("(5006 ,, )");
break;
}
}
}
}
void main()
{
if((fp=fopen("char.txt","r"))==0)
printf("Cannot open this file\n!");
else
{ while(cch!='#')
{
GetNextWord( );
printf("\n");
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?