判断其是否是C的合法标识符

来源:互联网 发布:淘宝店侦探怎么安装 编辑:程序博客网 时间:2024/04/29 15:56
输入一个字符串,判断其是否是C的合法标识符。 
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。 
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。 
Sample Input
312ajffi8x_aff  ai_2

Sample Output

noyesno
#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[64];    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;            }        }        puts(d ? "yes" : "no");    }    return 0;}