您的位置:首页 > 编程语言 > C语言/C++

hdu 2024 C语言合法标识符

2014-08-12 20:14 357 查看

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 36111 Accepted Submission(s): 14531



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




/*题解:

测试数据有点弱,水题

注意事项:

1.开头不为数字(开头可以是_下划线)

2.中间只能是字母,数字或下划线。

写个判断函数OK

*/

#include<cstdio>
#include<cstring>
int judge(char *a)
{
    int i,len,t=0;
    for(i=0; i<strlen(a); i++)
    {                         //开头不为数字(开头可以是_下划线) 
        if((a[0]!='_'&&a[0]<'A')||(a[0]!='_'&&a[0]>'Z'&&a[0]<'a')||a[0]>'z'&&a[0]!='_')
        return 0;             //中间只能是字母,数字或下划线 
        if((a[i]>='0'&&a[i]<='9')||a[i]=='_'||(a[i]<='z'&&a[i]>='a')||(a[i]>='A'&&a[i]<='Z'))
        t++;
    }
    if(t!=strlen(a)) return 0;   //判断是否有空格 
    return 1;
}
int main(){
    int T,i;
    char a[1010];
    scanf("%d",&T);
    getchar();     //吃掉回车符 
    while(T--)
    {
        gets(a);
        if(judge(a))
        {
            printf("yes\n");
        }
        else
        printf("no\n");
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: