输入一串字符判断是否为"C语言合法标识符"
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2024
刚开始写的时候忘记了“关键字”导致错了N次
#include<stdio.h>
#include<string.h>
char *keywords[32]={"auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","int", "long","register","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while"};
int main(){
int k,i,tag;
char a[100];
scanf("%d",&k);
getchar();
while(k--){
gets(a);
tag=1;
if(strlen(a)==0) tag=0;
if( !((a[0]>='a' && a[0]<='z')||(a[0]>='A'&&a[0]<='Z')|| a[0]=='_') ) tag=0;
for( i=0; i<32; i++){
if( strcmp(a,keywords[i])==0 ) {tag=0;break;}
}
for(i=1;i<strlen(a) ;i++)
if( !((a[i]>='a' && a[i]<='z')||(a[i]>='A'&&a[i]<='Z')|| a[i]=='_' || (a[i]>='0' && a[i]<='9')) )
{
tag=0;
break;
}
if(tag) printf("yes\n");
else printf("no\n");
}
return 0;
}