嗨,我工作的一个程序,获得一个后缀表达式并计算出它..读字符串不会正确
我有两个功能:
- 转换缀与postfix
- 计算后缀
当我尝试小表情,就像1 + 1或(1 + 1)* 1,它工作正常 但是当我使用所有的操作数我得到的东西讨厌,
这里是例子: 2 * 2/2 + 1-1 得到这样的: 222/* 11- +T_CHECKÖÐ7█Ã
如果你看到的,表达的是正确的,直到'? T”
我相信它的一些参数的错误,所以我就把这头这里返回值
1日)
char* convert(char *infix);
char *post = (char *)malloc(sizeof(char)*tamP);
return post;
2日)
int evaluate(char *postfix)
while (*postfix != '\0')
return result;
来电)
char* post = convert(infix);
result = evaluate(post);
感谢
我想你还应该提到convert(char *)的定义。 – 2010-10-15 18:47:41
这是没有足够的信息可以肯定地说,但如果字符串末尾有“垃圾”,请仔细检查您的代码是否在构建完成后始终在末尾放置'\ 0'字符。 – aschepler 2010-10-15 18:49:14
这些代码片段不完整:没有解析或转换代码。什么是“tamP”和“结果”?你如何阅读字符串?你如何写结果字符串?你得到的任何答案只是猜测,直到你发布更完整的东西。 – 2010-10-15 18:52:56