题目描述
输入一个字符串,判断其是否是C的合法标识符。
输入
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
输出
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
样例输入 Copy
3 12ajf fi8x_a ff ai_2
样例输出 Copy
no yes no
提示
C语言的标识符指保留字(for,int,if等)和用户定义的变量名。 C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或者下划线。
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
getchar();
for(int i=n;i>0;i--){
char ch[51];
int k=0;
while((ch[k]=getchar())!='\n') //输入字符串
k++;
ch[k]='\0';
int flag=0;
if(ch[0]>='0'&&ch[0]<='9') //字符串第一个如果是数字,格式不符合要求
flag=1;
for(int j=0;ch[j]!='\0';j++){ //检查字符串每个字符是否符合要求,符合检查下一个字符,不符合就退出
if((ch[j]>='0'&&ch[j]<='9')||(ch[j]>='A'&&ch[j]<='Z')||(ch[j]>='a'&&ch[j]<='z')||ch[j]=='_'){}
else {
flag=1;
break;
}
}
if(flag==1) printf("no\n");
else printf("yes\n");
}
}