ber0x88 Posted May 31, 2008 at 10:53 PM Report Share #188871 Posted May 31, 2008 at 10:53 PM Boas pessoal... Para ver o comprimento de uma string é "strlen()", mas para numeros inteiros, por exemplo "10", como faço para saber que são dois numeros?!? Tenho que converter o inteiro para string?!? "Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo." Link to comment Share on other sites More sharing options...
pcaldeira Posted May 31, 2008 at 11:14 PM Report Share #188874 Posted May 31, 2008 at 11:14 PM Podes converter o inteiro para string, mas não é a solução mais directa nem a mais rápida. Podes ver directamente o número de algarismos com um ciclo como este: for(i=0; num!=0; i++, num/=10); Basicamente, num é uma variável que tem uma cópia do número em questão. Sucessivamente, divide-se o número por 10 e vai-se contando o número de divisões feitas. Quando n é 0, não é possível dividir novamente. Aí, o número de divisões feitas (no código acima armazenado na variável i) será o número de algarismos que se pretende saber. Não te esqueças que num é uma cópia do número que queres "medir"; não podes usar este ciclo directamente na variável que tem o número sem copiá-la, a menos que não precises do número depois de o "medires". Link to comment Share on other sites More sharing options...
Guest id194 Posted May 31, 2008 at 11:51 PM Report Share #188879 Posted May 31, 2008 at 11:51 PM Uma outra alternativa é dares uma vista de olhos à função log10 no math.h mas acho que será mais pesada para o sistema que o método dado pelo pcaldeira. Link to comment Share on other sites More sharing options...
Baderous Posted June 1, 2008 at 11:26 AM Report Share #188940 Posted June 1, 2008 at 11:26 AM itoa Link to comment Share on other sites More sharing options...
MX+ Posted June 1, 2008 at 03:24 PM Report Share #188984 Posted June 1, 2008 at 03:24 PM Já precisei várias vezes disso e a solução do pcaldeira é o que uso. Podes fazer a função inline para ser mais rapida. inline unsigned int length(int n); Link to comment Share on other sites More sharing options...
ber0x88 Posted June 1, 2008 at 05:01 PM Author Report Share #189009 Posted June 1, 2008 at 05:01 PM Obrigado pessoal... 😛 "Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now