zoukankan      html  css  js  c++  java
  • HDU2024 C语言合法标识符

    问题链接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
    ");
            } 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
    ");
                else
                    printf("no
    ");
            }
        }
    
        return 0;
    }


  • 相关阅读:
    Android
    Android
    Android
    JAVA动态代理基础
    TCP连接与OKHTTP复用连接池
    Android
    Android
    GitHub上README.md教程
    android
    HDU 1097 A hard puzzle
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564680.html
Copyright © 2011-2022 走看看