English 中文(简体)
读取字符串不正常
原标题:Reading a string is not going properly

嘿,伙计们,我正在做一个程序,它得到一个后缀表达式并计算它。。

我有两个功能:

  1. Converts infix to postfix
  2. Calculate the postfix

When I try small expressions, like 1+1 or (1+1)*1, it works fine but when i use all the operands I get something nasty,

Here is the example: 2*2/2+1-1 gets something like: 222/*11-+T_CHECKÖÐ7?█Ã

如果你看到了,表达式是正确的,直到T

我认为这是一些参数错误,所以我将把头和返回值放在这里

第一)

char* convert(char *infix);
char *post = (char *)malloc(sizeof(char)*tamP);
return post;

第2)

int evaluate(char *postfix)
while (*postfix !=   )
return result;

呼叫者)

char* post = convert(infix);
result = evaluate(post);

谢谢

最佳回答

It is possible that you are not adding the character at the end of post (after the last sensible character) in the convert(char*) function. That s one reason I can think of. Try setting the complete string to before you do anything with it:

memset(post, 0, tamP);

应该这样做。

问题回答

这种奇怪的字符串看起来更像是缓冲区溢出错误。您可能会覆盖null终止符,因此当打印(或稍后使用)字符串时,它会一直运行,直到找到一个为止,并检查随机程序内存,直到到达那里。

检查所有字符串操作是否正确。





相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签