/* Ejemplo de cómo convertir un número en una cadena y cómo * concatenar esa cadena con otra. * * F. de Sande Martes 13.11.2001 * Respuesta a una pregunta de un alumno. * * El código trata de ser claro, no "reutiliza" variables y * trata de ejemplificar una práctica clara de programación. * ===========================================================*/ #include #include #include #define MAX_CAD 30 /* Tamaño máximo para las cadenas a convertir */ #define CERO '0' #define EoS '\0' char *unsigned_to_str(unsigned num); char *unsigned_to_str(unsigned num) { static char cadena[MAX_CAD]; /* Cadena para hacer la conversión */ char digit; /* Un dígito de la cadena (ASCII) */ unsigned pos, /* Posición del dígito */ len, /* Long. de la cadena */ i; pos = 0; while (num != 0) { /* Capturamos los dígitos de la cadena, de */ digit = CERO + (char)(num % 10); /* menos a más significativos */ num /= 10; cadena[pos++] = digit; } cadena[pos] = EoS; len = pos - 1; for (i = 0; i < len; i++) { /* "Damos la vuelta" a la cadena intercambiando */ digit = cadena[i]; /* sus dígitos */ cadena[i] = cadena[len - i]; cadena[len - i] = digit; } return cadena; } /* ======================================== */ int main(void) { unsigned num; char concatenar[MAX_CAD]; char final[MAX_CAD]; printf("Introduzca número: "); scanf("%u", &num); printf("Introduzca cadena a concatenar: "); scanf("%s", concatenar); strcpy(final, unsigned_to_str(num)); strcat(final, concatenar); printf("%s\n", final); }