Nelly 0 Denunciar post Postado Agosto 14, 2007 Alguem sabe como poderia converter um INT para CHAR em C ANSI, ou seja, sem usar itoa, atoi e derivados.Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Lima (Aram) 0 Denunciar post Postado Agosto 15, 2007 Alguem sabe como poderia converter um INT para CHAR em C ANSI, ou seja, sem usar itoa, atoi e derivados.Obrigadoueh... cast#include <stdio.h>int main() { int a = 65; char c = (char)a; printf("%c \n", c); return 0;}65 é o código da letra a maiuscula Compartilhar este post Link para o post Compartilhar em outros sites
Nelly 0 Denunciar post Postado Agosto 16, 2007 Olá Ricardo Lima (Aram)Na verdade eu preciso de converter o algarismo int para string.Por exemplo:a = 12345;eu peciso de uma função que converta para string , formando a string:"12345", de forma que eu posso manipular-la como um vetor de caracteres, usando indices etc..Valeu pela ajuda ! Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Lima (Aram) 0 Denunciar post Postado Agosto 16, 2007 bom, os comentários estão no código. Esse não usa nem a função log de math.h, eu calculei direto na função. divirta-se editado... onde você lê '\' é para colocar ASPAS_SIMPLES BARRA_INVERTIDA ZERO ASPAS_SIMPLES. esse forum zicado apaga o 0 por algum motivo.... #include <stdio.h>#include <stdlib.h>/* Recebe um inteiro de 0-9 e retorna o char correspondente */char int09ToChar(int i) { if (i < 0 || i > 9) return '?'; else return ('0' + i); /* chars são numeros inteiros representados como letras. o char '0' é o numero 48, '1' é o char 49 e assim vai. exemplos: char a = 112; printf("%d", a); ---> imprime o numero 112 (char a como inteiro) printf("%c", a); ---> imprime a letra p (char a como caractere) */}/* Devolve uma string que é a representação do inteiro i. StringAlocada dinâmicamente. Não se esqueça de limpá-la ao término de seu uso. */char* intToString(int i) { /* primeiro temos que detectar o tamanho da string */ int tamanho; /* fazemos uma cópia de i pois iremos precisar do i original depois */ int j = i; /* iterador */ int k; /* resultado */ char *resultado; do { j = j / 10; tamanho++; } while (j > 0); /* alocamos o espaço para a string. tamanho + 1 pois depois do numero é necessário o '\' para indicar final da string. */ resultado = (char*) malloc((tamanho + 1)*sizeof(char)); for (k = 0; k < tamanho; k++) { resultado[(tamanho - 1) - k] = int09ToChar(i % 10); i = i / 10; } /* toda string tem que ter o char '\' no final */ resultado[tamanho] = '\'; return resultado; } int main() { int a = 1234567890; printf("%s \n", intToString(a)); return 0;} Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Agosto 16, 2007 O Mais rápido e simples...#include <stdlib.h>void main(){ int i = 123; char cBuffer[5] = {0}; itoa(i,cBuffer, 10);} Compartilhar este post Link para o post Compartilhar em outros sites