【发布时间】:2011-02-21 04:35:41
【问题描述】:
我有一个将中缀表示法转换为后缀表示法的功能。我遇到的唯一问题是生成的后缀符号字符串的最后一个字符是 ?
�
任何想法发生了什么?这就是功能。如果我打印作为参数传递的中缀 char*,它会正确打印。当我在函数末尾打印后缀 char* 时,我得到了 � 最后一个字符
#include <iostream>
#include <string>
#include <fstream>
#include <string.h>
#include <ctype.h>
#include "queue.h"
#include "stack.h"
#define EXPRESSION_MAX_SIZE 50
#define MAX 10
#define EMPTY -1
using namespace std;
struct stack
{
char data[MAX];
int top;
};
【问题讨论】:
-
if( isdigit(*i) || isalpha(*i) )这一行是多余的。下面的 while 语句将保证相同的不变量。 -
您也没有检查变量 line 是否可以真正适合数组中缀。你应该做这个检查。
标签: c++ string pointers character-encoding char