try parsing the expression by spaces putting every token into a string and converting to numerical values when not an operator. Operators have length one and aren't digits (assuming the compound operator like +=, /=, etc aren't allowed) and no space between negative sign and first digit (or decimal point) is allowed if value is less than zero.
if(isdigit(expression[i])) //if current char in expression is a digit
temp += expression[i] //addend this digit to temp
++i //go to next char in expression
while(isdigit(expression[i]))//while next char in expressionis a digit
temp += expression[i] //addend it to temp
++i;//go to next char in expression
//end while loop
//end if statement
convert temp to numerical value
push temp on stack
--i; //decrease i by one so when i is incremented by one in the for loop you don't skip over a char in expression.