HDOJ题目地址:传送门
C语言合法标识符
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 59528 Accepted Submission(s): 23541
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<stdio.h> #include<string.h> #include<map> #include<iostream> #include<algorithm> using namespace std; int main(){ int n; string s; cin>>n; int flag=1; getchar(); while(n--){ flag=1; getline(cin,s); if(s.size()==0){ printf("no\n"); flag=0; }else if(!((s[0]>='a'&&s[0]<='z')||(s[0]>='A'&&s[0]<='Z')||s[0]=='_')){ printf("no\n"); flag=0; }else{ for(int i=1;i<s.size();i++){ if(((s[i]>='0'&&s[i]<='9')||s[i]=='_'|| (s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))){ }else{ flag=0; printf("no\n"); break; } } } if(flag) printf("yes\n"); } }
时间: 2024-10-12 17:56:06