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

hdu_2024_C语言合法标识符

2011-11-04 14:33 363 查看

关键字yes和关键字no的两个代码都能a,我还是上这个关键字no的吧....

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

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14564 Accepted Submission(s): 6107Problem 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<iostream>using namespace std;int main(){int n,i,flag;    int fun(string *str);char str[51];cin>>n;cin.get();    while(n--){flag=1;cin.getline(str,50);        for(i=0;str[i]!='\0';i++)if(!((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||(str[i]>='0'&&str[i]<='9')||str[i]=='_'))            {flag=0;                break;            }            char chr[33][10]={"auto","enum","unsigned","break","extern","return","void","case","float","short","volatile","char","for","signed","while","const","goto","sizeof","continue","if","static","default","inline","struct","do","int","switch","double","long","typedef","else","register","union"};int i;        for(i=0;i<34;i++){            if(strcmp(str,chr[i])==0){flag=0;                break;            }        }        if((str[0]>='0'&&str[0]<='9'))flag=0;        if(flag)cout<<"yes"<<endl;        elsecout<<"no"<<endl;    }    return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: