2024 C語言合法識別符號
阿新 • • 發佈:2019-02-14
C語言合法識別符號Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 46159 Accepted Submission(s): 18595 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 |
合法的識別符號,由字母數字下劃線組成,第一個字元不能是數字,用字元陣列存下來,用一個開關標記是否符合題意,單個判斷就可以了,程式碼比較繁瑣,可以用寫一個函式,比較直觀一些...
#include<stdio.h> #include<string.h> bool hefa(char x) { if(!((x>='a'&&x<='z')||(x>='A' &&x<='Z')||(x>='0'&&x<='9')||(x=='_'))) { return 0; } else { return 1; } } int main() { int i,t,ok;char x[55]; scanf("%d",&t); getchar(); while(t--) { memset(x,0,sizeof(x)); gets(x);ok=1; if(hefa(x[0])==1&&!(x[0]>='0'&&x[0]<='9')) { for(i=1;x[i]!=0;++i) { if(hefa(x[i])==0) { ok=0; break; } } } else { ok=0; } if(ok==1) { printf("yes\n"); } else { printf("no\n"); } } return 0; }