Imprimir texto formatado em C

Jinku Hu 12 outubro 2023
  1. Utilizar a função printf com o especificador %s para imprimir strings
  2. Utilize a função printf com o especificador %i para imprimir inteiros
Imprimir texto formatado em C

Este artigo irá introduzir vários métodos de como imprimir texto formatado para consola em C.

Utilizar a função printf com o especificador %s para imprimir strings

A função printf é uma das partes mais utilizadas da biblioteca padrão de entrada/saída. Na verdade, existe toda uma família de funções printf especializada em múltiplos cenários, todos eles documentados em grande detalhe nesta página. Neste artigo, apenas demonstramos a saída formatada utilizando a função printf.

A printf é única, na medida em que pode aceitar um número variável de argumentos. Nomeadamente, os parâmetros da função podem ser divididos em duas partes, a string de formatação e outros argumentos. A string de formatação especifica a parte de formatação da função, e inclui caracteres normais e especificadores que começam com o símbolo %. As formas mais simples são demonstradas no exemplo seguinte, onde printf toma a própria string como o único argumento na primeira chamada, e a segunda chamada declara um único especificador % na string de formato seguido pelo argumento da variável string.

#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);
}

Resultado:

String literal
fabulae mirabiles

Outra característica útil da string de formato é especificar quantos caracteres devem ser exibidos a partir do argumento da string que é passado para funcionar. O próximo exemplo de código demonstra duas soluções para este problema.

A primeira coloca o inteiro denotando o número de caracteres entre os símbolos % e s; assim, apenas 6 caracteres são impressos a partir do argumento da string dado. A segunda chamada printf coloca o caracter * e permite ao utilizador passar o valor integral de um dos argumentos. O lado positivo do último método é que o valor pode ser calculado em tempo de execução, enquanto que o primeiro método requer que o valor seja codificado em código duro. Note-se que, em ambos os casos, o símbolo . após o % é necessário.

#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);
}

Resultado:

fabula
fabula

Utilize a função printf com o especificador %i para imprimir inteiros

O printf pode imprimir números inteiros com diferentes representações. Os métodos comuns incluem a modificação da base na qual os números inteiros são exibidos. Os argumentos de números inteiros podem ser indicados com o especificador %i ou %d. Os números positivos e negativos são formatados automaticamente, excepto que os números positivos não são exibidos com o sinal de adição, e podem ser incluídos com o especificador explícito %+i. Os números hexadecimais e octais podem ser emitidos com os especificadores %x e %o correspondentes. O especificador %X exibe números hexadecimais com formatação de letra maiú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);
}

Resultado:

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

Artigo relacionado - C IO