http://acm.hdu.edu.cn/showproblem.php?pid=2024 这是大一的时候做的,今天做了一次忽然wa气死我 ,不过仔细看看还是一定小问题的,原因是因为没有%*c去除了字符垃圾的符号。。。。不过最好还是a了,合法的标识符,是字母或下划线开头,后面的只由数字,字母,下划线组成。。 #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int n,i; char a[60]; scanf("%d%*c",&n); while(n--) { gets(a); int k=strlen(a),flag=0; if(a[0]>='0'&&a[0]<='9') { puts("no"); flag=1; } if(flag==0) for(i=1;i<k;++i) { if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||a[i]=='_') continue; else { flag=1; break; } } if(flag) puts("no"); else puts("yes"); } return 0; } |