杭电 2024 C语言合法标识符

 
  

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 60188    Accepted Submission(s): 23837
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 #include #include int main(){ int i ,n ,flag ; char a [ 51 ]; while (scanf ( "%d" ,&n )!=EOF ) { getchar (); while (n --) { gets (a ); if ((a [ 0 ]>= 'a' &&a [ 0 ]<= 'z' )||(a [ 0 ]>= 'A' &&a [ 0 ]<= 'Z' )||(a [ 0 ]== '_' )) { for (i = 0 ,flag = 0 ;i <strlen (a );i ++) { if (((a [i ]>= 'a' &&a [i ]<= 'z' )||(a [i ]>= 'A' &&a [i ]<= 'Z' )||(a [i ]== '_' )||(a [i ]>= '0' &&a [i ]<= '9' ))) { flag ++; //总之立一个flag,再用strlen()函数测试下有没有到结束,也是开关函数的作用 if (flag ==strlen (a )) printf ( "yes\n" ); } else { printf ( "no\n" ); break; } } } else printf ( "no\n" ); } } return 0 ;}

#include
#include
int main(){
    int n,i;
    char str[100];
    while(EOF!=scanf("%d",&n))
    {
        getchar();
        while(n--)
        {
            i=0;
            gets(str);
            if(str[0]>47&&str[0]<58)
            {
                printf("no\n");
                break;
            }
            while(str[i]!='\0')
            {
                for(i=0;i                {
                    if(str[i]=' ')
                    {
                        printf("no\n");
                        break;
                    }
                    if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='b'||str[i]>='A'&&str[i]<='B'||str[i]=='_')
                        continue;
                }
            }
            printf("yes\n");
        }
    }
    return 0;
}

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