#include <stdio.h>
#include <ctype.h>
 
char const *
calculate( char const * input, 
               int * value )
{
        char ch = *input;
 
        if( isdigit(ch) ) {
                *value = ch - '0';
                return input + 1;
        }
        
        int left, right;
        input = calculate( input+1, &left );
        input = calculate( input, &right );
 
        switch( ch ) {
        case '+':
                *value = left + right;
                break;
        case '-':
                *value = left - right;
                break;
        case '*':
                *value = left * right;
                break;
        case '/':
                *value = left / right;
                break;
        default:
                // should not reach here
                break;
        }
 
        return input;
}
 
 
int main() {
 
        char const * input = "+1+*23*45";
        int result;
        
        calculate( input, &result );
 
        printf( "result is : %d\n", result );
        
        return 0;
}