HDU2024 C语言合法标识符

来源:互联网 发布:网络综合布线基础知识 编辑:程序博客网 时间:2024/05/18 02:42

问题链接:HDU2024 C语言合法标识符。入门训练题,用C语言编写程序。

问题简述参见上述链接。

问题分析C语言的标识符是字母或下划线('_')开头的,字母、下划线('_')和数字的字符串。

程序说明本来是用函数scanf()读入字符串的,但是空行(直接输入回车)时,有个小陷阱。所以,改用函数gets(),AC通过。这事情有点费解,细节决定成败。

用字符指针来处理应该是正解。求字符串长度,用for循环语句来出来需要两次查看字符串。

AC的C语言程序如下:

/* HDU2024 C语言合法标识符 */#include <stdio.h>#include <ctype.h>int main(void){    int n;    char s[50+1], *t;    gets(s);    n = atoi(s);    while(n--) {        gets(s);        if(!isalpha(s[0]) && s[0] != '_') {            // 非字母或下划线开头则不是标识符            printf("no\n");        } else {            int flag = 1;            t = s + 1;            while(*t && flag) {                // 字母、下划线或数字,则检查下一个字符                if(isalpha(*t)) {                    t++;                    continue;                }                if(*t == '_') {                    t++;                    continue;                }                if(isdigit(*t)) {                    t++;                    continue;                }                // 非字母、下划线或数字则不是标识符                flag = 0;                break;            }            if(flag)                printf("yes\n");            else                printf("no\n");        }    }    return 0;}


1 0
原创粉丝点击