• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ber0x88

[Resolvido] int lenght

6 mensagens neste tópico

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?!?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora