contar digitos incluindo 0s em C

Boas.

Preciso de contar, em C, digitos incluindo o 0 no inicio dos numeros e não sei como fazer. O unico metodo que conheço é a divisão por 10 e esse nao serve para contar numeros começados por 0.

Por exemplo, o programa ao analizar 0123456 teria de contar 7 digitos.

Ajuda sff.
 
É simples: não podes guardar isso como int. Supondo que isso é lido do teclado, usas a função scanf e guardas isso numa string. Depois a função strlen faz o resto. ;)
 
É simples: não podes guardar isso como int. Supondo que isso é lido do teclado, usas a função scanf e guardas isso numa string. Depois a função strlen faz o resto. ;)

Concordo com a solução de se recolher os dados como uma string e não como um número. Aliás, há mesmo quem defenda que em C/C++ se deve sempre recolher do teclado e imprimir na consola através de variáveis do tipo string. Está relaccionado com o preenchimento ou não do buffer ligado à consola e assim.

Mas na minha opinião não há problema nenhum em fazer recolhas em int.

Voltando ao tema principal desta thread, sempre que se quiserem proceder a operações deste tipo (contagem de caracteres, quantos vezes se repete um caracter, etc.) usam-se variaveis do tipo string.

Vá, cumps
 
Não sei se em C existe a função getline, mas em C++ podes usar a função getline para recolher os dados até encontrar um espaço ou um enter. Guardas isso para uma string e depois percorres a string e vais incrementando um contador, por exemplo. Não sei se existe a função size nas strings, mas é questão de ires procurar a www.cplusplus.com, por exemplo.
 
Não sei se em C existe a função getline, mas em C++ podes usar a função getline para recolher os dados até encontrar um espaço ou um enter. Guardas isso para uma string e depois percorres a string e vais incrementando um contador, por exemplo. Não sei se existe a função size nas strings, mas é questão de ires procurar a www.cplusplus.com, por exemplo.
Não é preciso contador nenhum. É so usar scanf e strlen.
 
basicamente é criar um array (vector) e devolver o nº do ultimo indice preenchido...+1 , nao será mais simples?


EDIT: realmente parece-me mais simples com:


Código:
/* strlen example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char szInput[256];
  printf ("Enter a sentence: ");
  gets (szInput);
  printf ("The sentence entered is %u characters long.\n",strlen(szInput));
  return 0;
}



Ja agora... se fosse assim, devolvia os valores mesmo que nao tivessem preenchidos?
Código:
  #include <string>
  size_type length() const;

The length() function returns the number of elements in the current string, performing the same role as the size() function
 
Última edição:
E se for de uma variável já existente podes
Código:
sprintf(string,"%d",inteiro);
E pronto, strlen(string) dá-te os números...
cumpzz
 
Back
Topo