diegotosco
(usa Slackware)
Enviado em 10/12/2005 - 23:23h
Olá,
Como fazer eu não sei, teria que pensar mais, mas o tempo tá curto, mas talvez eu saiba, pelo menos, o porquê dos erros.
Acredito que o maior erro vem do fato de você ter um ponteiro char igualado à um vetor de inteiros, pois ao incrementar "p2", você poderá estar no meio de um elemento do vetor "hex", não necessáriamente no próximo elemento. Você pode declarar um ponteiro "int".
Outra coisa, quando você digita um número maior que 3 hexas, deve dar erro na conversão, pois como a tabela ASCII tem 256 caracteres, um número maior que esse não poderá ser convertido, pois não existe o valor a ser convertido. Isso porque qualquer número que você digitar será armazenado em um único elemento de "hex", não em elementos separados. Então ao digitar uma sequência de hexas como o "61616161", toda a string será armazenada em um único elemento, que não poderá então ser convertido. Não sei se ficou bem claro.
Sobre os espaços, scanf() não os aceita, sendo necessário o uso de outra função (recomendo fgets(), pesquise no man).
Espero que tenha ajudado amigo, tenta dar uma pesquisada nesses assuntos, caso eu tenha falado alguma besteira, por favor me corrija, para não gerar confusão Quando chegar ao resultado, poste aqui o que estava errado realmente.