***问题:
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<iostream>
#include<string.h>
using namespace std;
int judge1(char s){//判断是否为数字或者为字母
if((s>='0'&&s<='9')||(s>='a'&&s<='z')||(s>='A'&&s<='Z'))
return 1;
return 0;
}
int judge2(char s){//判断是否为字母
if((s>='a'&&s<='z')||(s>='A'&&s<='Z'))
return 1;
return 0;
}
char s[51];
int main(){
int n,falg,i;
cin>>n;
getchar();
while(n--){
gets(s);
if(!judge2(s[0])&&s[0]!='_'){
cout<<"no"<<endl;
continue;
}
for( i=1,falg=1;i<strlen(s);i++){
if(!judge1(s[i])&&s[i]!='_'){
falg=0;
break;
}
}
if(falg==1) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}