C语言合法标识符
Time Limit: 2000/1000 MS
(Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Total Submission(s): 33416 Accepted
Submission(s): 13468
Problem Description
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
解题报告:
符合C的合法标识符的要求即为:首字母为下划线_或者字母,不能为数字。接下来的输入要是键盘上合法的输入,例如是数字,字母,下划线。这样就满足C的合法标识符的要求。
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int n,i,k,l; 6 char a[50]; 7 scanf("%d",&n); 8 getchar(); 9 10 while(n--) 11 { 12 gets(a); 13 l=strlen(a); 14 k=0; 15 if((a[0]>=‘a‘&&a[0]<=‘z‘)||(a[0]>=‘A‘&&a[0]<=‘Z‘)||a[0]==‘_‘) 16 k++; 17 for(i=1;i<l;i++) 18 { 19 20 if((a[i]>=‘a‘&&a[i]<=‘z‘)||(a[i]>=‘A‘&&a[i]<=‘Z‘)||a[i]==‘_‘||(a[i]>=‘0‘&&a[i]<=‘9‘)) 21 k++; 22 } 23 if(k==l) 24 printf("yes\n"); 25 else 26 printf("no\n"); 27 } 28 }