• 直播


    //
    // Created by jihuayu on 2020/2/12.
    //
    #include<stdio.h>
    #include<malloc.h>
    #include<string.h>
    
    const char *base_num[11] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"};
    #define NUM_LENGTH (11)
    
    typedef struct Var {
        char *name;
        int num;
    } Var;
    
    typedef struct Line {
        char *str;
        int pos;
    } Line;
    
    typedef struct VM {
        Var **vars;
    } VM;
    
    //从位置pos开始比较base是不是和str一样
    int cmp(const char *base, const char *str, int pos) {
        for (int i = 0; i < strlen(str); ++i) {
            if (base[pos + i] != str[i] || (i + pos >= strlen(base))) {
                return 0;
            }
        }
        return 1;
    }
    
    int cn_to_num1(Line *line) {
        for (int i = 0; i < NUM_LENGTH; i++) {
            if (cmp(line->str, base_num[i], line->pos)) {
                line->pos += strlen(base_num[i]);
                return i;
            }
        }
        return -1;
    }
    
    int cn_to_num(Line *line) {
        int a1 = cn_to_num1(line);
        int a2 = cn_to_num1(line);
        if (a2 == -1) {
            return a1;
        }
        int a3 = cn_to_num1(line);
        if (a3 == -1) {
            if (a1 == 10 & a2 == 10) {
                return -1;
            }
            if (a2 == 10) {
                return a1 * 10;
            }
            if (a1 == 10) {
                return 10 + a2;
            }
        }
        if (a2 == 10) {
            return a1 * 10 + a3;
        }
        return -1;
    }
    
    char *num_to_cn(int num) {
        return "";
    }
    
    void print(char *name) {
        printf("%s", "");
    }
    
    Var *create_var(char *name, int num) {
        Var *var = (Var *) malloc(sizeof(Var));
        var->name = name;
        var->num = num;
        return var;
    }
    
    void add(VM *vm, char *name, int num) {
    
    }
    
    
    void desc(VM *vm, char *name, int num) {
    
    }
    
    
  • 相关阅读:
    线性时间将两个有序链表合成一个有序链表(constant additional space)
    C++定义指针数组
    cmd运行java编译文件
    java的方法
    Java流程控制
    用户交互-Scanner
    Java的注释
    编译型语言和解释性语言
    JDK、JRE和JVM
    MarkDown的简单使用
  • 原文地址:https://www.cnblogs.com/jhy16193335/p/12298379.html
Copyright © 2020-2023  润新知