Эй, ребята, я работаю над программой, которая получает выражение постфикса и вычисляет его ..Чтение строки не будет должным образом
У меня есть две функции:
- Преобразование инфикс в Postfix
- Вычислить суффикса
когда я пытаюсь небольшие выражения, как 1 + 1 или (1 + 1) * 1, он отлично работает , но когда я использую все операнды я получаю что-то противное,
Вот пример: 2 * 2/2 + 1-1 получает что-то вроде: 222/* 11- + T_CHECKÖÐ7 не █Ã
Если вы видите, что выражение верно до тех пор? T»
Я считаю, что это какой-то параметр ошибка, поэтому я положу заголовок и возвращать значения здесь
первый)
char* convert(char *infix);
char *post = (char *)malloc(sizeof(char)*tamP);
return post;
второй)
int evaluate(char *postfix)
while (*postfix != '\0')
return result;
Caller)
char* post = convert(infix);
result = evaluate(post);
Благодаря
Я думаю, вы также должны указать определение convert (char *). –
Этого недостаточно, чтобы сказать наверняка, но если в конце строки есть «мусор», дважды проверьте, что ваш код всегда ставит символ «\ 0» в конце после его создания. – aschepler
Эти фрагменты кода являются неполными: кода синтаксического анализа или преобразования не существует. Что такое 'tamP' и' result'? Как вы читаете в строке? Как вы пишете результирующую строку? Любые ответы, которые вы получите, будут только догадываться, пока вы не опубликуете что-то более полное. –