Imprimir texto con formato en C

Jinku Hu 12 octubre 2023
  1. Utilizar la función printf con el especificador %s para imprimir cadenas
  2. Utilice la función printf con el especificador %i para imprimir enteros
Imprimir texto con formato en C

Este artículo presenta varios métodos para imprimir texto con formato en la consola en C.

Utilizar la función printf con el especificador %s para imprimir cadenas

La función printf es una de las partes más utilizadas de la biblioteca de entrada/salida estándar. En realidad, hay toda una familia de funciones printf especializadas para múltiples escenarios, todas ellas documentadas con gran detalle en esta página. En este artículo, sólo demostramos la salida formateada usando la función printf.

La función printf es única porque puede tomar un número variable de argumentos. En concreto, los parámetros de la función se pueden dividir en dos partes, la cadena de formato y otros argumentos. La cadena de formato especifica la parte de formato de la función, e incluye caracteres ordinarios y especificadores que comienzan con el símbolo %. Las formas más sencillas se muestran en el siguiente ejemplo, en el que printf toma la propia cadena como único argumento en la primera llamada, y en la segunda se declara un único especificador %s en la cadena de formato seguido del argumento de la variable de cadena.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  const char* str1 = "fabulae mirabiles";

  printf("String literal\n");
  printf("%s\n", str1);

  exit(EXIT_SUCCESS);
}

Producción :

String literal
fabulae mirabiles

Otra característica útil de la cadena de formato es especificar cuántos caracteres mostrar del argumento de la cadena que se pasa a la función. El siguiente código de ejemplo demuestra dos soluciones a este problema.

La primera pone el entero que denota el número de caracteres entre los símbolos % y s; así, sólo se imprimen 6 caracteres del argumento de cadena dado. La segunda llamada a printf pone el carácter * en su lugar y permite al usuario pasar el valor integral de uno de los argumentos. El lado positivo de este último método es que el valor puede ser calculado en tiempo de ejecución, mientras que el primer método requiere que el valor sea codificado. Tenga en cuenta que, en ambos casos, el . después del símbolo % es necesario.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  const char* str1 = "fabulae mirabiles";

  printf("%.6s\n", str1);
  printf("%.*s \n", 6, str1);

  exit(EXIT_SUCCESS);
}

Producción :

fabula
fabula

Utilice la función printf con el especificador %i para imprimir enteros

printf puede imprimir enteros con diferentes representaciones. Los métodos más comunes incluyen la modificación de la base en la que se muestran los números enteros. Los argumentos enteros se pueden indicar con el especificador %i o %d. Los números positivos y negativos se formatean automáticamente, con la excepción de que los números positivos no se muestran con el signo más, y se puede incluir con el especificador explícito %+i. Los números hexadecimales y octales se pueden mostrar con los especificadores %x y %o respectivamente. El especificador %X muestra los números hexadecimales con formato de letra mayúscula.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  printf("%i %d %.6i %+i %i\n", 11, 22, 12, 41, -31);
  printf("%.4x %x %X %#x\n", 126, 125, 125, 100);
  printf("%.4o %o\n", 8, 11);

  exit(EXIT_SUCCESS);
}

Producción :

11 22 000012 +41 -31
007e 7d 7D 0x64
0010 13
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C IO