輸入一個字符串,判斷其是否是C的合法標識符。
Input
輸入數據包含多個測試實例c語言中正確的用戶標識符,數據的第一行是一個整數n,表示測試實例的個數,然后是n行輸入數據,每行是一個長度不超過50的字符串。
對于每組輸入數據,輸出一行。如果輸入數據是C的合法標識符c語言中正確的用戶標識符,則輸出"yes",否則,輸出“no”。
Input
3
12ajf
ff ai_2
no
yes
no
HINT
C語言的標識符指保留字(for,int,if等)和用戶定義的變量名。
C語言的標識符由字母、數字和下劃線組成,其中第一個字符必須是字母或者下劃線。
#include
int main()
{
int i,j,n,b,c,d;
char a[100];
while(scanf("%d",&n)!=EOF)
{
getchar();//這個必須有,不然就直接輸出對n的判斷了
for(i=0;i<n;i++)//n次大循環
{
b=0;c=0;d=0;//每次大循環bcd清零,不然會累加,要搞清每次清零放在while還是for
gets(a);
if((a[0]>='a'&&a[0]<='z')||(a[0]=='_')||(a[0]>='A'&&a[0]<='Z'))//每組&&都加個()
b=1;//做個標記,如果這個條件都不滿足說明不是合法的
for(j=0;a[j]!='\0';j++)
if(a[j]>='a'&&a[j]<='z'||(a[j]=='_')||(a[j]>='0'&&a[j]<='9')||(a[j]>='A'&&a[j]<='Z'))//對全部進行判斷,要求是字母,數字或下劃線
c++;
if(c==j)
d=1;
if(b==1&&d==1)//通過判別決定輸出
printf("yes");
else
printf("no");
printf("\n");
}
}
return 0;
}