Bailian3659 判断是否为C语言的合法标识符【文本处理】

来源:互联网 发布:excel数据库教程 编辑:程序博客网 时间:2024/05/16 04:31

判断是否为C语言的合法标识符


总时间限制: 
1000ms 
内存限制: 
65536kB
描述
C语言中的合法标识符的定义为:以下划线或字母开头的字母数字串(含下划线)。
完成一个程序实现对输入的n个字符串进行判定,是否为C语言的合法标识符。如果是则输出1,不是则输出0
输入
输入的第一行为一个数字,表明有几个输入字串。
后面每一行为一个长度不超过80的字符串。
输出
对所有输入的字符串进行判断,是合法标识符则输出1,回车。否则输出0,回车。
样例输入
5hello_worldmy godi_stdio008A
样例输出
10110

问题链接:Bailian3659 判断是否为C语言的合法标识符

问题分析:(略)

程序说明:按照规则逐个字符判断处理。

题记:写程序最需要的是逻辑清晰。

 

AC的C语言程序如下

/* Bailian3659 判断是否为C语言的合法标识符 */#include <stdio.h>#include <ctype.h>#define N 80char s[N + 1];int main(void){    int n, ans;    char *t;    scanf("%d", &n);    getchar();    while(n--) {        gets(s);        if(!isalpha(s[0]) && s[0] != '_') {            // 非字母或下划线开头则不是标识符            ans = 0;        } else {            ans = 1;            t = s + 1;            while(*t && ans) {                // 字母、下划线或数字,则检查下一个字符                if(isalpha(*t)) {                    t++;                    continue;                }                if(*t == '_') {                    t++;                    continue;                }                if(isdigit(*t)) {                    t++;                    continue;                }                // 非字母、下划线或数字则不是标识符                ans = 0;                break;            }        }        printf("%d\n", ans);    }    return 0;}