5.11. Escreva as seguintes funções
11.1 int isdigit(char c) Verdade caso c seja um digito. Falso, caso o contrário.
11.2 int isalpha (char c) Verdade caso c seja uma letra do alfabeto, maiúscula ou minúscula. Falso, caso o contrário.
11.3 int isalnum (char c) Verdade caso c seja uma um dígito ou uma letra do alfabeto. Falso, caso o contrário.
11.4 int islower (char c) Verdade caso c seja uma letra minúscula. Falso, caso o contrário.
11.5 int supper (char c) Verdade caso c seja uma letra maiúscula. Falso, caso o contrário.
11.6 int isspace (char c) Verdade caso c seja um espaço ou um tab. Falso, caso o contrário.
11.7 char tolower (char c) Devolve o valor do caractere c transformado em minúsculas.
11.8 char toupper (char c) Devolve o valor do caractere c transformado em maiúsculas.
Passo 1
Essa aqui parece longa, mas a gente vai conseguir resolver tudo.
Bom o segredo aqui é incluir uma biblioteca. Você viu a nota do exercício? Ela pede para na primeira linha escrever:
Essa linha inclui uma biblioteca, e essa biblioteca tem todas as funções que a gente precisa.
Por exemplo, para resolver a 11.1 basta a gente fazer:
Viu? A gente nem precisou escrever a função, ele já está na biblioteca. Mas vamos fazer tudo isso manualmente agora.
Passo 2
Começando pela 11.1, vamos verificar se é um digito. Para fazer isso é só colocar numa condicional, se respeitar a condição retorna verdadeiro, se não respeitar retorna falso:
Olha só, se estiver entre e retorna verdadeiro, e aí a gente sabe que é um dígito.
Passo 3
A gente pode seguir exatamente o mesmo raciocínio para fazer a 11.2, vamos fazer:
Não esquece de colocar as maiúsculas também.
Passo 4
Para 11.3 vamos juntar todo que a gente já fez:
A gente também pode escrever assim:
Passo 5
Se você entendeu a 11.2 essa você faz fácil.
É o alfabeto sem as maiúsculas.
E aqui a gente já pode emendar a 11.5, que basta fazer o alfabeto sem as minúsculas:
Passo 6
Agora vamos para 11.6, essa fica assim:
Aquele /t significa o tab.
Passo 7
Chegamos na 11.7. Essa aqui vai ser um pouquinho diferente, agora a gente vai fazer uma transformação. A ideia é a seguinte, se a letra for minúscula ou dígito a gente devolve a mesma entrada, se for maiúscula a gente devolve a letra minúscula.
Olha lá, a gente fez uma operação matemática com caracteres, se você não entendeu dá uma olhada na tabela ascii, e com ela que a gente tá mexendo ali. Aquela operação transforma todas as letras maiúsculas em minúsculas.
Passo 8
E para fazer a 11.8 é só fazer ao contrário:
E finalmente terminamos.
Resposta
11.1
11.2
11.3
11.4
11.5
11.6
11.7
11.8