C語言合法標識符

輸入一個字符串,判斷其是否是C的合法標識符。 

Input

輸入數據包含多個測試實例,數據的第一行是一個整數n,表示測試實例的個數,然後是n行輸入數據,每行是一個長度不超過50的字符串。 

Output

對於每組輸入數據,輸出一行。如果輸入數據是C的合法標識符,則輸出"yes",否則,輸出“no”。 

Sample Input

3
12ajf
fi8x_a
ff  ai_2

Sample Output

no
yes
no
/*C語言規定:標識符只能由字母、數字和下劃線3種字符組成,
且第一個字符必須爲字母或下劃線。*/
#include <algorithm>
#include <string.h>
#include <stdio.h>
int h(char a)/*判斷是否是字母或數字*/
{
    if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9')
        return 1;
    return 0;
}
int hs(char a)/*判斷是否是字母*/
{
    if(a>='a'&&a<='z'||a>='A'&&a<='Z')
        return 1;
    return 0;
}
int main()
{
    int n, d, i;
    char sym[51];
    scanf("%d%*c", &n);/*輸入n組,注意%*c是爲了跳過回車鍵的輸入*/
    while (n--)
    {
        gets(sym);
        if (sym[0] != '_' && !hs(sym[0])) 
        {
        	puts("no");
            continue;
        }
        for (d = 1,i = 1 ; sym[i] ; i++)
        {
            if (!h(sym[i]) && sym[i] != '_')
            {
                d = 0;
                break;
            }
        }
        if(d==0)
        {
        	puts("no");
		}
		else
		{
			puts("yes");
		}
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章