C语言编程问题求解答

题目描述
C语言中的合法标识符的定义为:以下划线或字母开头的字母数字串(含下划线)。
完成一个程序实现对输入的n个字符串进行判定,是否为C语言的合法标识符。如果是则输出1,不是则输出0

关于输入
输入的第一行为一个数字,表明有几个输入字串。
后面每一行为一个长度不超过80的字符串。

关于输出
对所有输入的字符串进行判断,是合法标识符则输出1,回车。否则输出0,回车。

例子输入
5
hello_world
my god
i
_stdio
008A
例子输出
1
0
1
1
0


#include<cstdio>
#include<cstring>
#include<cctype>
int main(){
    int n;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++){
        char s[81];
        gets(s);
        int num=strlen(s);
        int flag = 1;
        for(int j=0;j<num;j++){
            if(isalpha(s[j])||s[j]=='_'||isdigit(s[j])){
                if(j==0&&!(isalpha(s[0])||s[0]=='_')){
                    flag=0;
                }
            }else{
                flag=0;
            }
        }
        printf("%d\n",flag);
    } 
    return 0;
}