HDOJ 2024 C語言合法標識符(水題,講講標識符)
C語言合法標識符
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 42681 Accepted Submission(s): 17117
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語言合法標識符。
定義: 在計算機高級語言中,用來對變量,符號常量名,函數,數組,類型等命名的有效字符序列統稱為標識符。
注意:1.C語言規定標識符只能由字母,數字和下劃線3種字符組成,且第1個字符必須為字母或下劃線。
2.編譯系統將大寫字母和小寫字母認為是兩個不同的字符。
AC代碼如下:
#include
#include
int main()
{
int len,n,i;
char str[55];
scanf("%d",&n);
getchar();//此處要吸收字符
while(n--)
{
gets(str);
if((str[0]<65||str[0]>122)&&str[0]!='_')
printf("no\n");
else
{
int k=0;
len=strlen(str);
for(i=1;i57)||str[i]>122)&&str[i]!='_')
{
k=1;break;
}
}
if(!k)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}