zoukankan      html  css  js  c++  java
  • 统计C语言合法字符

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char a[51];
    int i,t,n;
    while(scanf("%d",&n)!=EOF)
    {getchar();
    while(n--)
    { t=0;
    gets(a);
    for(i=0;i<strlen(a);i++)
    {
    if(a[0]!='_'&&(a[i]<65||a[0]>122||(a[0]>90&&a[0]<97))) {printf("no "); break;}
    else if(a[i]<0||(a[i]>9&&a[i]<65)||(a[i]>90&&a[i]<97)||(a[i]>122)&&(a[i]!='_')) {printf("no "); break;}
    t++;
    }
    if(t==strlen(a)) printf("yes ");
    }
    }
    return 0;
    }

    运行

    连续输入ENTER键判断正确,而结果应该要错误,由于不知道如何确定a[i]是否为ENTER键的语句;

    所以换了一种思维。

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char a[51];
    int i,t,n,k;
    while(scanf("%d",&n)!=EOF)
    {getchar();
    while(n--)
    {
    gets(a);
    if(a[0]>'0'&&a[0]<'9')
    {
    printf("no ");
    break;
    }
    for(i=0;i<strlen(a);i++)
    {
    if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_'))
    {
    k=1;
    }
    else {k=0;break;}
    }
    if(k==0) printf("no ");
    else printf("yes ");
    }
    }
    return 0;
    }

    总结

    1、首字符是字母或下划线
    2、其余字符为字母或下划线或数字
    3、若用scanf("%s",c);来读取字符数组,会读取不到空格;
    4、此数据无需判断main等即可ac
    5、
    开头除了不能是数字外,还不可以是换行“Enter”
    开头和结尾有空格应该没有问题的,但是我在自己的程序上是WA,但在这里是AC。
    而且不用考虑main等关键字
  • 相关阅读:
    Object C学习笔记19-枚举
    Object C学习笔记18-SEL,@ selector,Class,@class
    Object C学习笔记17-动态判断和选择器
    Object C学习笔记16-委托(delegate)
    CopyOnWriteArrayList源码解析
    企业项目开发--切分配置文件
    常用Java集合类总结
    HashSet源码解析
    网络工具使用情况分析
    邮件营销的准则
  • 原文地址:https://www.cnblogs.com/liuming1115/p/4464318.html
Copyright © 2011-2022 走看看