A função isprint() checa se o caractere passado é printável. Um caractere printável é um caractere que não é um caractere de controle.
Um caractere de controle é um número pertencente a um conjunto de caracteres que não representa por si só um símbolo da escrita, por exemplo o backspace que é usado para apagar o último caractere impresso ou para sobre-escrevê-lo.
Declaração
int isprint(int c);
Parâmetros
- c – Caractere a ser checado.
Retorno
Essa função retorna um valor não nulo (verdadeiro) se c for um caractere printável, caso contrário retorna 0 (falso).
Exemplo
#include <stdio.h>
#include <ctype.h>
int main () {
int var1 = 'k';
int var2 = '8';
int var3 = '\t';
int var4 = ' ';
if( isprint(var1) ) {
printf("var1 = |%c| pode ser printado\n", var1 );
} else {
printf("var1 = |%c| não pode ser printado\n", var1 );
}
if( isprint(var2) ) {
printf("var2 = |%c| pode ser printado\n", var2 );
} else {
printf("var2 = |%c| não pode ser printado\n", var2 );
}
if( isprint(var3) ) {
printf("var3 = |%c| pode ser printado\n", var3 );
} else {
printf("var3 = |%c| não pode ser printado\n", var3 );
}
if( isprint(var4) ) {
printf("var4 = |%c| pode ser printado\n", var4 );
} else {
printf("var4 = |%c| não pode ser printado\n", var4 );
}
return(0);
}
Saída:
var1 = |k| pode ser printado
var2 = |8| pode ser printado
var3 = | | não pode ser printado
var4 = | | pode ser printado
Codificando a função
Ao olhar a tabela ASCII vemos que o primeiro caractere printável é o espaço (32) e o último é o til (126). Dessa forma basta verificar se o caractere ‘c’ passado no parâmetro é menor que o espaço ou maior que o til.
int ft_isprint(int c)
{
if (c < ' ' || c > '~') //se for menor que espaço ou maior que til
return (0); // retorna 0 (falso)
return (1); //senão entrar no if é verdadeiro
}
Referências
https://www.tutorialspoint.com/c_standard_library/c_function_isprint.htm