杭电 acm 2024(C语言合法标识符)

Problem Description
输入一个字符串,判断其是否是C的合法标识符。

Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。

Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

Sample Input

12ajf
fi8x_a 
ff
  ai_2
Sample Output
no
yes
no


1.首字母不能以数字开头
2.在字符串中,不能有空格,特殊符号
3.在字符串中应该可以有数字,字母,_,


代码如下:
#include 
#include 
int main() 
{ 
    char a[50]; 
    int n,i,l,p; 
    scanf("%d",&n); 
    getchar(); 
    while(n--) 
    {
        p=0; 
        gets(a); 
        l=strlen(a);
        if(a[0]<='z'&&a[0]>='a'||a[0]<='Z'&&a[0]>='A'||a[0]=='_')
        {
            for(i=1;i='a'||a[i<='Z'&&a[i]>='A'||a[i]=='_'||a[i<='9'&&a[i]>='0') 
                    continue;
                else 
                {
                    p=1; 
                    break;
                } 
            } 
        } 
        else
            p=1;
       if(p)
            printf("no\n");
       else 
       printf("yes\n");
   } 
   return 0;
 }

你可能感兴趣的:(杭电acm)