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 }