wordNum][i-temp]='\0';
wordNum++;
i--;
}
else if(isNum(str[i]))
{//如果是数字
for(;str[i]!='\0'&&(!isOperator(str[i]))&&(!isSeparator(str[i]))&&(isNum(str[i]));i++)
{
array[wordNum][i-temp]=str[i];
}
array[wordNum][i-temp]='\0';
wordNum++;
i--;
}
else
{
array[wordNum][0]=str[i];
array[wordNum][1]='\0';
wordNum++;
}
}
}
//输出信息
void output()
{
int i ;
printf("\n");
for(i = 0;i {
int flag = judge(array[i]);
switch(flag)
{
case 1:
printf(" 1、基本保留字:\t%s\n",array[i]);
break;
case 2:
printf(" 2、标识符 :\t%s\n",array[i]);
break;
case 3:
printf(" 3、常数 :\t%s\n",array[i]);
break;
case 4:
printf(" 4、运算符 :\t%s\n",array[i]);
break;
case 5:
if(strcmp(array[i],"\n")==0)
{
printf(" 5、分隔符 :\t\\n\n",array[i]);
}
else if(strcmp(array[i]," ")==0)
{
printf(" 5、分隔符 :\t空格\n",array[i]);
}
else
{
printf(" 5、分隔符 :\t%s\n",array[i]);
}
break;
case -1:
printf("-1、不能识别 :\t%s\n",array[i]);
break;
default:
printf("-1、不能识别 :\t%s\n",array[i]);
break;
}
}
}
//判断是哪类字符(1、基本保留字 2、标识符 3、常数 4、运算符 5、分隔符 -1、不能识别)
int judge(char * word)
{
if(isSeparator_str(word))
{
return 5;
}
else if(isReservedWord_str(word))
{
return 1;
}
else if(isOperator_str(word))
{
return 4;
}
else if(isNum_str(word))
{
return 3;
}
else if(isIndentifier_str(word))
{
return 2;
}
else
{
return -1;
}
}
//判断是否是字符
int isChar(char c)
{
if(c>='A'&&c<='Z'||c>='a'&&c<='z')
{
return 1;
}
else
{
return 0;
}
}
//判断是否是数字(单个字符)
int isNum(char c)
{
if(c>='0'&&c<='9')
{
return 1;
}
else
{
return 0;
}
}
//判断是否是操作符(单个字符)
int isOperator(char c)
{
int i ;
char sign[] = {'+','-','*','/','%'};
for(i = 0;i {
if(c==sign[i])
{
return 1;
}
}
return 0;
}
//判断是否是分隔符(单个字符)
int isSeparator(char c)
{
int i ;
char sign[] = {'\n',' ','\"','\t',',',';',':','\'','<','>','(',')','{','}','[',']'};
for(i = 0;i {
if(c==sign[i])
{
return 1;
}
}
return 0;
}
//判断是否是基本保留字(参数:字符串)
int isReservedWord_str(char* str)
{
int i ;
for(i = 0;i {
if(strcmp(str,sign_reserved_word[i])==0)
{
return 1;
}
}
return 0;
}
//判断是否是操作符(参数:字符串)
int isOperator_str(char* str)
{
int i ;
for(i = 0;i {
if(strcmp(str,sign_operator[i])==0)
{
|