hdu-C语言合法标识符

来源:互联网 发布:怎样发数据到gsm模块 编辑:程序博客网 时间:2024/05/17 23:25

http://acm.hdu.edu.cn/showproblem.php?pid=2024


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

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

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

Sample Input
312ajffi8x_aff ai_2
 

Sample Output
noyesno


分析:

#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(){    int n,sum;    int flag;    cin>>n;    getchar();    while(n--){        char a[50];        gets(a);        flag=0;        sum=0;        int len=strlen(a);        if(!(a[0]=='_'||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z'))){               cout<<"no"<<endl;               continue;        }               for(int i=0;i<len;i++)                    if(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]<='9'&&a[i]>='0'))                        sum++;                if(sum==len)                    cout<<"yes"<<endl;                else cout<<"no"<<endl;    }    return 0;}