C语言合法标识符
Problem Description
输入一个字符串,判断其是否是C的合法标识符。
Input
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes nomy code:#include<stdio.h> #include <ctype.h> int main(){ char s[50]; int n,i,j; scanf("%d",&n); getchar(); //把无用的字符吸收掉 for(i=0;i<n;i++){ gets(s); //不能用scanf("%s",&s);因为会把一个字符串的空格认为是字符串的结束 bool flag=true; if(isalpha(s[0])||s[0]=='_'){ //判断字符串的首字符是否为字母或'_' for(j=1;s[j]!='\0';j++){ if(!isalnum(s[j])&&s[j]!='_') flag=false; } if(flag==true){printf("yes\n");} else{printf("no\n");} } else{printf("no\n");} } return 0; }