思路:逆波兰数需要使用到一个结果栈,当遇到数字入栈,当遇到运算符就会出栈两个值并进行该运算符的操作,将计算结果入栈;
核心1:
//判断是否是运算符,因为负数的第一位也是'-'因此要进行判别
if(('+' == **tokens || '-' == **tokens || '*' == **tokens || '/' == **tokens) && 1 == strlen(*tokens))
核心2:
将字符串转换为数字:(记得判断是否为负数)
int transition(charstr) {
    if (NULL == str) {
        puts("arg error");
        return -1;
    }
    int len = strlen(str);
    int ret = 0;
    if (len == 1) {
        ret = *str - '0';
        return ret;
    }
    int a = 1;
    if(*str == '-')
    {
        str++;
        a = -1;
    }
    while (*str) {
        ret = ret * 10 + (*str - '0');
        str++;
    }
    return ret*a;
}