Hi! I am a student, in my first C++ class. I am trying to program a scanner that would take a string of non-numeric numbers postfix, convert to numeric numbers and give a value. I've exhausted all my resources and just can't figure out where my program is going wrong. Any suggestions would be greatly appreciated! This is my first time posting here, so I hope that I did this right. Thank you

No matter what string I enter (like "100 25 +"), I only get a value of 0. I think my problem is in my "int convert (char*)" function but I'm not sure.

Code:
#include <iostream.h>
#include <math.h>

#define E 0
#define L 1
#define G 2
#define C -1

int strcomp (char*, char*);
int eval (char*);
int scanner (char*, int, char*);
int convert (char*);

class stack 
{
   public:
   int *arr;
   int ptr;
   int n;
   stack (int n);
   ~stack ();
   int push (int value);
   int pop ();
   int empty ();
   int full ();
};

stack::stack (int value)
{
   n = value;
   arr = new int [n];
   ptr = 0;
}

stack::~stack ()
{
   delete []arr;
}

int stack::push (int value)
{
   if (ptr < n)
   {
      arr [ptr] = value;
      ptr++;
      return E;
   }
   else return L;
}

int stack::pop ()
{
   ptr--;
   return arr [ptr];
}

int stack::empty ()
{
   if (ptr == 0) return E;
   else return L;
}

int stack::full ()
{
   if (ptr == n) return E;
   else return L;
} 

int main () 
{
   int n;
   char arr [100];
   cin.getline (arr, 100);
   while ( strcomp(arr, "quit") != E) 
   {
      n = eval (arr);
      cout << "The value of " << arr << " = " << n << endl;
      cin.getline (arr, 100);
   }
}

int strcomp (char*str1, char*str2)           
{                                                             
   int k = 0;
   while (str1 [k] == str2 [k])
   {
      if (str1 [k]  == '\0') return E;
      else k++;
   }
   if (str1 [k] < str2 [k]) return L;
   else return G;
}

int eval (char*str)
{
   int pos = 0, value;
   char token [100];
   stack stk1 (100);
   while (pos != C)
   {
      pos = scanner (str, pos, token);
      char fchar = token[0];
      if (fchar == '+' || fchar == '-' || fchar == '*' || fchar == '/')
      {
         int opr1 = stk1.pop ();
         int opr2 = stk1.pop ();
         if (fchar == '+') value = opr1 + opr2;
         if (fchar == '-') value = opr1 + opr2;
         if (fchar == '*') value = opr1 + opr2;
         if (fchar == '/') value = opr1 + opr2;
         int rel = stk1.push (value);
      }
      else  
      {
          int num = convert (token);
          int ret = stk1.push (num);
      }
   }
   return stk1.arr [0];
}

int scanner (char*str, int str, char*token);
{
   int i = st;
   while (str [i] != ' ')
   {
      if (str [i] == '\0') return C;
      else 
      {
         token [i-st] = str [i];
         i++;
      }
   }
   token [i-st] = '\0';
   i++;
   return i;
}

int convert (char*str)
{
   int i = 1;
   int num;
   num = str [i] - '0';
   while (str [i] != '\0')
   {
      num = num * 10;
      num = num + str [i] - '0';
      i++;
   }
   return '\0';
}