Sou só eu que estou com esse problema, ou mais alguém está "com lixo" na string parâmetro [da função para construir a fila]?
Gostaria de saber como me livrar dos "lixos" que aparecem inexplicavelmente no meio da string char *linha.
Desde já grato!
Sou só eu que estou com esse problema, ou mais alguém está "com lixo" na string parâmetro [da função para construir a fila]?
Gostaria de saber como me livrar dos "lixos" que aparecem inexplicavelmente no meio da string char *linha.
Desde já grato!
[Não deu para dar EDIT. Complementando para ficar mais fácil de entender com um exemplo]
Na string [vou chamá-la de string mesmo]: 9 10 + 9 +
Vamos supor que eu quero pegar a soma que está no meio. Eu imaginei fazendo algo do tipo:
if (*string == '+' && (*string) - 1) == ' ' && (*string) + 1) == ' ')
eu pegaria apenas o "+" intermediário, mas não é o que acontece. Os valores vizinhos não estão preenchidos com caracteres de "espaço" ' ', mas com lixo, e por isso o programa acaba não me retornando o mais que eu busco. O que eu faço para me livrar desse lixo? [Com o exemplo acho que está mais fácil de entender].
Consegui resolver, aparentemente. Ainda não sei o que são esses lixos, porém, mas achei um "outro caminho".
Oi Renan,
Vamos supor que eu quero pegar a soma que está no meio. Eu imaginei fazendo algo do tipo:
Hmmm.
Eu não entendi o que é "pegar a soma do meio".
Vocês devem usar uma pilha para calcular o valor da expressão.
Algo muito semelhante ao que fizemos na função infixaParaPosfixa.
Isto é o que pede o exercício 12 (Valor de Expressão Polonesa) da página http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html escrita por Paulo Feofiloff.
Vocês simplemente varrem uma expressão posfixa e usando uma pilha calculam o valor da expressão.