title: Evaluate a simple string mathematical expression
body: <p>I've just taken a test for a graduate C++ developer with the question below.  It didn't go too well as I couldn't decide on a clear way of completing the task.  Time limit didn't help either.  I'm interested in how experienced developers would have tackled the follow problem - in pseudo or sample code:</p>
  <pre class="lang-none prettyprint-override"><code>Evaluate
  
  Write a function in C or C++ that evaluates the result of a simple expression.
  The function should ignore whitespace, but stop at the first non valid character.
  Valid tokens are listed in the table below:
  
  0-9 - Only integers are allowed in expressions
  
  () - Nested expressions should be evaluated first.
  
  +, -, *, / - Basic operators are addition, subtraction, multiplication and division.
  
  The expression should be parsed from left to right. It is not necessary to consider operator precedence in your solution (e.g. 1 + 3 * 4 = 16). If there is an error in the expression, the function should return false.
  
  Suggested prototype for function:
  
  Example:
  
  bool evaluate(const char *expression, int &amp;result)
  {
  ...
  }
  
  **Input**
  1+3
  (1 + (12 * 2)
  
  **Result**
  4
  N/A
  
  **Return code**
  true
  false (missing bracket)
  </code></pre>
  <p>In addition, this is the 2nd C++ that I've failed to complete successfully.  Have had 1 year intership experiece and 1 year academic experiece using C++, but I'm not prepared for some of these tests.  Are there any recommended resources where I can attept to solve problems such as this one in order to gain more 'testing' experience?</p>