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

    Problem Description
    输入一个字符串,判断其是否是C的合法标识符。
     
    Input
    输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
     
    Output
    对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
     
    Sample Input
    3
    12ajf
    fi8x_a
    ff ai_2
     
    Sample Output
    no
    yes
    no
     
    AC代码:
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        //只能由字母、数字、下划线组成,且数字不能做开头
        int n;
        char bsf[50];
        scanf("%d", &n);
        getchar();
        while(n--)
        {
            int flag = 0;
            gets(bsf);
            int len = strlen(bsf);
            if(bsf[0] >= '0' && bsf[0] <= '9')
            {
                printf("no
    ");
                continue;
            }        
            for(int i = 0; i < len; i++)
            {
                if((bsf[i] >= '0' && bsf[i] <= '9' )|| (bsf[i] >= 'a' && bsf[i] <= 'z' )|| (bsf[i] >= 'A' && bsf[i] <= 'Z') || bsf[i] == '_' )
                {
                    flag ++;
                }    
                else
                {
                    printf("no
    ");
                    break;
                }
                    
            }
            if(flag == len)
            printf("yes
    ");
        } 
        return 0;
    }

    得考虑全C语言标识符的定义, 按照定义来做,考虑要全面.

    第一次上交想要投机取巧,看到第三个有个空格就只考虑若字符串里面含空格就输出no, 但是只符合输出样式的答案不一定就能AC。

    做题不能投机取巧

     
  • 相关阅读:
    1026 Table Tennis (30)
    1029 Median
    1025 PAT Ranking (25)
    1017 Queueing at Bank (25)
    1014 Waiting in Line (30)
    1057 Stack (30)
    1010 Radix (25)
    1008 Elevator (20)
    字母大小写转换
    Nmap的基础知识
  • 原文地址:https://www.cnblogs.com/witharush/p/9657664.html
Copyright © 2011-2022 走看看