C言語合法標識
2546 ワード
判定正当識別子
タイトルの説明
テーマは簡単です.
Cの正当な識別子かどうかを判断する文字列を入力します.
入力
入力データには複数のテストインスタンスが含まれ、データの最初の行は整数nであり、テストインスタンスの数を表し、次いでn行入力データであり、各行は100を超えない文字列である.
しゅつりょく
入力データのセットごとに1行出力します.入力データがCの正当な識別子である場合、「yes」が出力され、そうでない場合、「no」が出力される.
サンプル入力
3
nyojacm
12hduacm
poj#acm
サンプル出力
yes
no
no
ヒント
友情のヒント:識別子はアルファベット、下線、数字の3つの側面から構成されますが、最初はアルファベットまたは下線でなければなりません.また、キーワードは識別子ではありません
#include<stdio.h>
#include<string.h>
int main()
{
int t,i;
char s[110];
scanf("%d ",&t);
while(t--){
gets(s);
int len=strlen(s);
if(s[0]>='a' && s[0]<='z' || s[0]>='A' && s[0]<='Z' || s[0]=='_'){
for(i=1;i<len;i++){
if(s[i]<'0' || (s[i]>'9' && s[i]<'A') || (s[i]>'Z' && s[i]<'a' && s[i]!='_') || s[i]>'z'){
printf("no
");
break;
}
}
if(i==len) printf("yes
");
}
else printf("no
");
}
return 0;
}