原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2024
思路:C语言合法标识符要求第一位是字母或下划线,除第一位外,可以使字母、数字或下划线。
wrong answer code:
#include<stdio.h> #include<string.h> int check1(char* str) { int i,len; len = strlen(str); if(!((str[0] <= 'z'&&str[0] >= 'a')||(str[0] <= 'Z'&&str[0] >= 'A')||str[0] == '_')) return 0; for(i = 1;i < len;i ++) { if(!((str[i] <= '9'&&str[i] >= '0')||(str[i] <= 'z'&&str[i] >= 'a')||(str[i] <= 'Z'&&str[i] >= 'A')||str[i] == '_')) return 0; return 0; } return 1; } int main(void) { int cas; char str[50]; scanf("%d",&cas); getchar(); while(cas --) { gets(str); //getchar(); if(check1(str)) printf("yes"); else printf("no"); //puts(str); printf(" "); } return 0; }
ac code:
#include<stdio.h> #include<string.h> char str[50]; int check1() { int i,len; len = strlen(str); if(!((str[0] <= 'z'&&str[0] >= 'a')||(str[0] <= 'Z'&&str[0] >= 'A')||str[0] == '_')) return 0; for(i = 1;i < len;i ++) { if(!((str[i] <= '9'&&str[i] >= '0')||(str[i] <= 'z'&&str[i] >= 'a')||(str[i] <= 'Z'&&str[i] >= 'A')||str[i] == '_')) return 0; } return 1; } int main(void) { int cas; scanf("%d",&cas); getchar(); while(cas --) { gets(str); if(check1()) printf("yes"); else printf("no"); printf(" "); } return 0; }