Imprimir texto formatado em C
-
Utilizar a função
printf
com o especificador%s
para imprimir strings -
Utilize a função
printf
com o especificador%i
para imprimir inteiros
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
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