1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

contar digitos incluindo 0s em C

Discussão em 'Programação' iniciada por ashemorroidas, 2 de Janeiro de 2008. (Respostas: 10; Visualizações: 2949)

  1. 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.
     
  2. É 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. ;)
     
  3. Make.Love

    Make.Love Banido

    que tipo de contagem desejas? nao consegui entender a pergunta.
     
  4. Ao introduzir no teclado 0123 que o output do programa seja 4, uma vez que introduzi 4 digitos contando com o 0 à esquerda...
     
  5. r3pek

    r3pek Power Member

    o Mr. Brightside já te respondeu axo eu :) ficaste com alguma duvida?
     
  6. mj2p

    mj2p I'm Cool Cuz I Fold

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

    OubeLa Power Member

    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.
     
  8. Não é preciso contador nenhum. É so usar scanf e strlen.
     
  9. OubeLa

    OubeLa Power Member

    Desconheço ;) tal como disse, não sei C, apenas C++ ;)
     
  10. Make.Love

    Make.Love Banido

    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: 2 de Janeiro de 2008
  11. Tyran

    Tyran Power Member

    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
     

Partilhar esta Página