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