Ir ao conteúdo

Conversão de tipos em C


De Los Santos

Posts recomendados

Postado

Então pessoal, eu queria saber se tem alguma função que transforma um número em uma string; ou um algarismo em um caracter. O processo inverso eu sei que tem uma função, que se chama atoi(...).

Postado

Desenvolvi uma função própria para converter inteiro em string com restrição de caracteres!!!

Espero que te auxilie

Segue a função abaixo:

int formanumero ( void )

{

int i = 0, j, b[100];

double x = .0;

char a;

do

{

do

{

a = getch();

if ( strchr("0123456789", a) && (int)a != 13 )

b = (int)a - 48;

}

while ( ! strchr ("0123456789", a) && (int)a != 13 );

++i;

printf("%c", a);

}

while ( (int) a != 13 );

j = i - 2;

i = 0;

while ( j >= 0 )

{

x += b * ###### ( 10, j );

++i;

--j;

}

system("cls");//no dev

//clrscr();

return x;

}

Postado

Diretamentamente do fonte do Solaris... e se você olhar melhor o código do Solaris, você irá descobrir muitas funções interessantes...

http://cvs.opensolaris.org/source/xref/usr...i/sys/itoa.c#33



    #include<iostream.h>
   
char *
     itoa(long n, int base)
     {
      register char *p;
      register int minus;
      static char buf[36];
     
      p = &buf[36];
      *--p = '\0';
      if (n < 0) {
       minus = 1;
       n = -n;
      }
      else
       minus = 0;
      if (n == 0)
       *--p = '0';
      else
       while (n > 0) {
        *--p = "0123456789abcdef"[n % base];
        n /= base;
       }
      if (minus)
       *--p = '-';
      return p;
     }
int main() {

char *Teste = itoa( 12345, 10 ); //Número, base
cout<<Teste<<endl;

return 0;
     }

  • 2 semanas depois...
Postado

Bom. Como tem atoi() de string -> inteiros, tb tem uma funcao para transformar inteiros em um string (sem você tem q programar um monte... :muro: ).

Use o "sprintf()"

ex:

char cNumber[11]; // cabe um inteiro com 10 digitos

int iInteger = 1125;

sprintf(cNumber, "%d", iInteger);

então

cNumber vai ser "1125\0"

sprintf() tem varios formatos para fazer o string como você quiser.

:palmas:

  • 3 semanas depois...
Postado
Postado Originalmente por MikoCWB@30 de junho de 2005, 21:04

Use o "sprintf()"

aí MikoCWB, valeu pela informação, usei essa função e funcionou que foi uma beleza.

Moderador, se quiser fechar esse tópico pode fechar.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!