Tanchenko AleXanDr
Если без скобок выражение, то решается всё не просто, а очень просто (на голом C):
Код:

int expression(char * expr)
{
int result;
char * c;
result = 0;
c = expr;
if(!isdigit(*c))
{
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
for(; isdigit(*c); ++c)
result = result * 10 + (c - '0');
switch(*c)
{
case 0:
return result;
case '+';
return result + expression(c + 1);
case '-';
return result - expression(c + 1);
default:
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
}
Основание системы счисления.