<ctype.h>

A maioria das funções deste arquivo de cabeçalhos serve para classificar caracteres ASCII, ou seja, determinar se um determinado byte representa uma letra, um dígito, um espaço em branco ou outro tipo de símbolo.

Mesmo que o argumento de cada função não seja um char mas sim um inteiro positivo, o caractere passado para a função é convertido internamente para seu valor ASCII para a verificação.

Funções

int isalnum(int c)

Testa se um caractere é alfanumérico.

Recebe: um argumento inteiro cujo valor seja um caractere ou EOF.

Retorna: valor diferente de zero se o caractere for alfanumérico, ou 0 caso contrário.

Exemplo de uso

#include <stdio.h> 
#include <ctype.h>

int main() {
  char c = 'A';

  if(isalnum(c)) printf("É alfanumérico\n");

  return 0;
}

Saída esperada

É alfanumérico

int isalpha(int c)

Testa se um caractere é uma letra do alfabeto.

Recebe: inteiro representando caractere ou EOF.

Retorna: valor diferente de zero se for letra.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'A';

  if(isalpha(c)) printf("É alfabético\n");

  return 0;
}

Saída esperada

É alfabético

int iscntrl(int c)

Testa se um caractere é um caractere de controle ASCII.

Recebe: caractere ou EOF.

Retorna: valor diferente de zero se for caractere de controle.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = '\n'; /* Caractere de controle (nova linha) */

  if(iscntrl(c)) printf("É um caractere de controle\n");

  return 0;
}

Saída esperada

É um caractere de controle

int isdigit(int c)

Testa se um caractere é um dígito decimal (0–9).

Recebe: caractere ou EOF.

Retorna: valor diferente de zero se for dígito.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = '7'; /* Caractere numérico (dígito) */

  if(isdigit(c)) printf("É um dígito\n");

  return 0;
}

Saída esperada

É um dígito

int isgraph(int c)

Testa se um caractere possui representação gráfica.

Recebe: caractere (int).

Retorna: valor diferente de zero se for imprimível (exceto espaço).

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = '#'; /* Caractere com representação gráfica */

  if(isgraph(c)) printf("É um caractere gráfico\n");

  return 0;
}

Saída esperada

É um caractere gráfico

int islower(int c)

Testa se o caractere é uma letra minúscula.

Recebe: caractere (int).

Retorna: valor diferente de zero se for letra minúscula.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'm'; /* Caractere de letra minúscula */

  if(islower(c)) printf("É uma letra minúscula\n");

  return 0;
}

Saída esperada

É uma letra minúscula

int isprint(int c)

Testa se um caractere é imprimível.

Recebe: caractere (int).

Retorna: valor diferente de zero se for imprimível (incluindo espaço).

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = ' '; /* Caractere de espaço (imprimível) */

  if(isprint(c)) printf("É um caractere imprimível\n");

  return 0;
}

Saída esperada

É um caractere imprimível

int ispunct(int c)

Testa se o caractere é um símbolo de pontuação.

Recebe: caractere (int).

Retorna: valor diferente de zero se for sinal de pontuação.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = '.'; /* Caractere de pontuação */

  if(ispunct(c)) printf("É um caractere de pontuação\n");

  return 0;
}

Saída esperada

É um caractere de pontuação

int isspace(int c)

Testa se o caractere é um espaço em branco.

Recebe: caractere (int).

Retorna: valor diferente de zero se for espaço em branco (incluindo \n, \t, \r, etc).

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = '\t'; /* Caractere de tabulação (espaço em branco) */

  if(isspace(c)) printf("É um espaço em branco\n");

  return 0;
}

Saída esperada

É um espaço em branco

int isupper(int c)

Testa se o caractere é uma letra maiúscula.

Recebe: caractere (int).

Retorna: valor diferente de zero se for letra maiúscula.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'G'; /* Caractere de letra maiúscula */

  if(isupper(c)) printf("É uma letra maiúscula\n");

  return 0;
}

Saída esperada

É uma letra maiúscula

int isxdigit(int c)

Testa se o caractere é um dígito hexadecimal.

Recebe: caractere (int).

Retorna: valor diferente de zero se for dígito hexadecimal.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'F'; /* Caractere hexadecimal */

  if(isxdigit(c)) printf("É um dígito hexadecimal\n");

  return 0;
}

Saída esperada

É um dígito hexadecimal

int tolower(int c)

Converte uma letra maiúscula para minúscula.

Recebe: caractere (int).

Retorna: versão em minúscula da letra, ou o próprio caractere inalterado.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'R'; /* Caractere em letra maiúscula */

  /* Converte para minúscula e imprime o resultado */
  printf("A versão minúscula é: %c\n", tolower(c));

  return 0;
}

Saída esperada

A versão minúscula é: r

int toupper(int c)

Converte uma letra minúscula para maiúscula.

Recebe: caractere (int).

Retorna: versão em maiúscula da letra, ou o próprio caractere inalterado.

Exemplo de uso

#include <stdio.h>
#include <ctype.h>

int main() {
  char c = 'h'; /* Caractere em letra minúscula */

  /* Converte para maiúscula e imprime o resultado */
  printf("A versão maiúscula é: %c\n", toupper(c));

  return 0;
}

Saída esperada

A versão maiúscula é: H