?? c標(biāo)志符命名源程序.c
字號(hào):
/* C標(biāo)志符命名源程序*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <malloc.h>
char* IsLegal(char* CheckWord);
char* ErrorMessages[]={ /*錯(cuò)誤信息列表*/
"無錯(cuò)誤!",
"1 首字符只能是字母或下劃線!",
"2 常、變量只能由字母、下劃線和數(shù)字構(gòu)成!",
"3 常、變量標(biāo)識(shí)不能用C語言關(guān)鍵字!",
"4 常、變量標(biāo)識(shí)不能用C語言函數(shù)!",
"內(nèi)存不夠!"
};
void main(void)
{
char *Prompt="C語言標(biāo)志符的命名要遵守以下原則:";
char *TestWord;
int i;
TestWord = (char *)malloc( sizeof(char)*32 ); /*TestWord存放用戶輸入*/
if( !TestWord )
return;
/*顯示部分提示信息*/
puts(Prompt);
for( i=1 ;i<=4;i++){
puts( ErrorMessages[i] );
}
puts("");
while(1){
printf("\n\n請(qǐng)輸入一個(gè)標(biāo)志符(大寫的Q退出) :");/*提示*/
scanf("%s",TestWord); /*得到用戶輸入*/
if( (toupper)(TestWord[0])=='Q' )
break;/*循環(huán)出口*/
printf("\n%s %s",TestWord,IsLegal(TestWord)); /*判定標(biāo)志符的合法性*/
}
free( TestWord );
}
/*此函數(shù)檢驗(yàn)標(biāo)志符命名的合法性*/
char* IsLegal(char* CheckWord)
{
char* KeyWords[]={"auto","break","case","char","continue","const","default",
"do","double","else","enum","extern","float","for","goto",
"if","int","long","noalias","register","return","short",
"signed","sizeof","static","struct","switch","typedef",
"union","unsigned","void","volatile","while","defined",
"define","undef","include","ifdef","ifndef","endif","line",
"error","elif","pragma"};/*C關(guān)鍵字列表*/
char* Functions[]={"close","creat","eof","fclose","fcloseall","feof","fopen",
"ferror","fgetchar","fgets","fprintf","fputc","fputchar",
"fseek","get","putch","putc","printf","open","putchar",
"puts","read","scanf","abs","acos","asin","math","atan",
"atan2","atof","atoi","atol","ceil","dos","cosh","ecvt",
"exp","fabs","floor","fmod","frexp","itoa","labs","ldexp",
"log","log10","modf","pow","rand","sin","sqrt","srand",
"strtod","strlol","tan","tanh","ultoa","memset","strcpy",
"struct","strchr","strcmp","calloc","isalnum","isalpha",
"toascii","tolower","tollpper","exit"};/*C主要函數(shù)列表*/
char* Others="_";/*'_'也可以用于關(guān)鍵字,但我們不推薦您使用!*/
int WordLength,i;
char* WordTemp;
WordTemp = (char*)malloc( 32 *sizeof(char ) );
if( !WordTemp ) return ErrorMessages[5];
WordLength=strlen(CheckWord);
/*檢查標(biāo)志符命名原則1*/
if((isalpha(CheckWord[0])==0)&&(CheckWord[0]!=Others[0]))
return ErrorMessages[1];
/*檢查標(biāo)志符命名原則2*/
for(i=0;i<WordLength;i++)
if((isalnum(CheckWord[i])==0)&&(CheckWord[i]!=Others[0]))
return ErrorMessages[2];
/*檢查標(biāo)志符命名原則3*/
for(i=0;i<44;i++)
{
if(!strcmp(CheckWord,KeyWords[i]))
return ErrorMessages[3];
}
i=0;
for(i=0;i<69;i++) /*檢查標(biāo)志符命名原則4*/
{
if(!strcmp(CheckWord,Functions[i]))
return ErrorMessages[4];
}
free(WordTemp);
return ErrorMessages[0];
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -