输入一个字符串,判断其是否是C的合法标识符。
Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
#include <algorithm> #include <string.h> #include <stdio.h> int h(char a)/*判断是否是字母或数字*/ { if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9') return 1; return 0; } int hs(char a)/*判断是否是字母*/ { if(a>='a'&&a<='z'||a>='A'&&a<='Z') return 1; return 0; } int main() { int n, d, i; char sym[64]; scanf("%d%*c", &n);/*输入n组,注意%*c是为了跳过回车键的输入*/ while (n--) { gets(sym); if (sym[0] != '_' && !hs(sym[0])) { puts("no"); continue; } for (d = 1,i = 1 ; sym[i] ; i++) { if (!h(sym[i]) && sym[i] != '_') { d = 0; break; } } puts(d ? "yes" : "no"); } return 0; }