文法规则写法

#include<stdio.h>
main()
{
    char n[100],n1[100],n2[100];
    int i,i1=0,i2=0,j;
    printf("请你输入字符串:\n");
    gets(n);
      for(i=0;i<n;i++)
    {
        j=(int) n[i];
        n1[i]=n[100];
        if((j>=65) && (j<=90)||(j>=90) && (j<=122))
        {
            n1[i1]=n[i];
            i1++;
        }
        else{
             while(i1!=0)
            {
               n1[i1]=‘\0‘;
               if(strcmp(n1,"auto")==0||strcmp(n1,"int")==0||strcmp(n1,"double")==0||strcmp(n1,"long")==0||strcmp(n1,"char")==0||strcmp(n1,"float")==0||strcmp(n1,"short")==0||strcmp(n1,"signed")==0||strcmp(n1,"unsigned")==0||strcmp(n1,"struct")==0||strcmp(n1,"union")==0||strcmp(n1,"enum")==0||strcmp(n1,"static")==0||strcmp(n1,"switch")==0||strcmp(n1,"case")==0||strcmp(n1,"default")==0
                         ||strcmp(n1,"break")==0||strcmp(n1,"register")==0||strcmp(n1,"const")==0||strcmp(n1,"volatile")==0||strcmp(n1,"typedef")==0||strcmp(n1,"extern")==0||strcmp(n1,"return")==0||strcmp(n1,"void")==0||strcmp(n1,"continue")==0||strcmp(n1,"do")==0||strcmp(n1,"while ")==0||strcmp(n1,"if")==0||strcmp(n1,"else")==0||strcmp(n1,"for")==0||strcmp(n1,"goto")==0||strcmp(n1,"sizeof")==0)
             {
               n1[i1]=‘)‘;
               printf("(1,");
               puts(n1);
               i1=0;
               memset(n1,0,100);
             }
              else
             {
               n1[i1]=‘)‘;
               printf("(10,");
               puts(n1);
               i1=0;
               memset(n1,0,100);
             }

           }

          if((j>48)&& (j<57))
         {
             n2[i2]=n[i];
             i2++;
         }
         else{
               if((int) n[i-1]>48 && (int) n[i-1]<57)
               {
               n2[i2]=‘)‘;
               printf("(11,");
               puts(n2);
               i2=0;
               memset(n2,0,100);
               }

         if(j==42||j==43||j==45||j==47||j==61||j==62||j==60)
        {

            if((int) n[i+1]==61)
            {
             switch (j)
             {
               case 60:
                      printf("(21,%c=)",n[i]);
                      printf("\n");
                      break ;
               case 62:
                      printf("(24,%c=)",n[i]);
                      printf("\n");
                      break;
              default :
                      printf("(非法字符,%c)",n[i]);
                      printf("\n");
                      break;
             }
             i=i+1;
            }
            else
            {
             switch (j)
             {
               case 42:
                      printf("(15,%c)",n[i]);
                      printf("\n");
                      break ;
               case 43:
                      printf("(13,%c)",n[i]);
                      printf("\n");
                      break;
               case 45:
                      printf("(14,%c)",n[i]);
                      printf("\n");
                      break;
               case 60:
                      printf("(20,%c)",n[i]);
                      printf("\n");
                      break;

               case 61:
                      printf("(25,%c)",n[i]);
                      printf("\n");
                      break;
               case 62:
                      printf("(24,%c)",n[i]);
                      printf("\n");
                      break;
               default :
                      printf("(非法字符,%c)",n[i]);
                      printf("\n");
                      break;

             }
            }
        }
        else if(j==32)
        {

        }
        else if(j==33||j==44||j==46||j==58||j==59||j==63||j==44)
        {
            switch (j)
             {
               case 59:
                      printf("(26,%c)",n[i]);
                      printf("\n");
                      break ;
               default :
                      printf("(非法字符,%c)",n[i]);
                      printf("\n");
                      break;
             }
        }
        else if(j==34||j==35||j==38||j==39||j==40||j==41||j==123||j==124||j==125||j==126)
        {
            switch (j)
             {
               case 40:
                      printf("(27,%c)",n[i]);
                      printf("\n");
                      break ;
               case 41:
                      printf("(28,%c)",n[i]);
                      printf("\n");
                      break ;
               case 35:
                      printf("(0,%c)",n[i]);
                      printf("\n");
                      break ;
               default :
                      printf("(非法字符,%c)",n[i]);
                      printf("\n");
                      break;
             }
        }
        else
        {
            break;
        }

     }

    }

  }
}

时间: 2025-01-02 09:29:10

文法规则写法的相关文章

伪静态规则写法RewriteRule-htaccess详细语法使用

一.正则表达式教程 伪静态规则写法RewriteRule-htaccess详细语法使用教程分享 简单说下:伪静态实际上是利用PHP把当前地址解析成另外一种方法进行访问网站!要学伪静态规则的写法,你必须得懂一点正则,不会没关系,照着下面的套就行 一.正则表达式教程 有一个经典的教程: 正则表达式30分钟入门教程这个教程的确很简单,看完基本上写一些简单的正则就没有问题了.正则是一个需要长期使用的工具,隔段时间不用会忘记,所以我每次都看一遍这个教程.其实学过之后重要的就是一点内容. 简单罗列如下: .

.gitignore 规则写法 - 在已忽略文件夹中不忽略指定文件、文件夹【注意项】

1. 在已忽略文件夹中不忽略指定文件夹 /node_modules/* !/node_modules/layer/ 2. 在已忽略文件夹中不忽略指定文件 /node_modules/* !/node_modules/layer/layer.js [注意项]注意写法 要忽略的文件夹一定要结尾 /* ,否则不忽略规则将无法生效 3. 其他规则写法 (附) 以斜杠"/"开头表示目录: 以星号"*"通配多个字符: 以问号"?"通配单个字符 以方括号&qu

伪静态规则写法

REWRITE伪静态 一.Apache配置: 进入/etc/httpd/conf/目录下,打开httpd.conf文件. 启用rewrite # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 # 启用.htaccess AllowOverride None 修改为: AllowOverride All ------------------------------------------------------------------

转:Nginx 配置 location 总结及 rewrite 规则写法

转: http://www.linuxidc.com/Linux/2015-06/119398.htm 1. location正则写法 一个示例: location =/{ # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location /{ # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/{ # 匹配任何以 /do

nginx配置location总结及rewrite规则写法

https://segmentfault.com/a/1190000002797606 location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents

nginx配置location总结及rewrite规则写法(2)

2. Rewrite规则 rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向.rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如http://sui.com/a/we/index.php?id=1&u=str 只对/a/we/index.php重写.语法rewrite regex replacement [flag]; 如果相对域名或参数字符串起作用,

firewalld规则写法

需要注意的是Firewalld中的区域与接口 一个网卡仅能绑定一个区域.比如: eth0-->A区域 但一个区域可以绑定多个网卡.比如: B区域-->eth0.eth1.eth2 可以根据来源的地址设定不同的规则.比如:所有人能访问80端口,但只有公司的IP才允许访问22端口 trusted 允许所有的数据包流入与流出 白名单 public 拒绝流入的流量,除非与流出的流量相关:而如果流量与ssh.dhcpv6-client服务相关,则允许流量 drop 拒绝流入的流量,除非与流出的流量相关

C语言 文法规则之消除左递归

<program>→<external declarations>(<program>|~) <external declarations>→<function definition>|<declaration> <function definition>→<type declaration><declarator><consistent statement> <type decl

词法规则写法

#include<stdio.h> main() { char n[100],n1[100],n2[100]; int i,i1=0,i2=0,j; printf("请你输入字符串:\n"); gets(n); for(i=0;i<n;i++) { j=(int) n[i]; n1[i]=n[100]; if((j>=65) && (j<=90)||(j>=90) && (j<=122)) { n1[i1]=n[