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; }