0001 char* removeSpace ( char* s ) { //剔除s[]中的白空格 0002 for ( char *p = s-1, *q = s; (p < s) || *p; *++p = *q++ ) 0003 while ( isspace( *q ) ) q++; 0004 return s; 0005 } 0006 0007 int main ( int argc, char* argv[] ) { //表达式求值(入口) 0008 for ( int i = 1; i < argc; i++ ) { //逐一处理各命令行参数(表达式) 0009 char* rpn = new char[strlen( argv[i] ) * 4]; rpn[0] = '\0'; //逆波兰表达式(4倍原串长,通常不致溢出) 0010 double value = evaluate ( removeSpace ( argv[i] ), rpn ); //求值 0011 delete rpn; 0012 } 0013 return 0; 0014 }