[C] Detector de Letra Maiúscula ou Minúscula

mauro1855

I'm cool cuz I Fold
Normalmente quem está a frequentar cadeiras de Programação Básica em C pode deparar-se num exame/teste com um exercício que peça este código que vou postar, ou então, se não for o caso (estudante), pode ser útil para um utilizador mais iniciado.
Assim, fica aqui este código muito simples que detecta se uma letra introduzia é maiúscula ou minúscula:

Código:
/* Função: Detecta se uma letra introduzida é maiúscula ou minúscula
 * Propósito: Educacional
 * Autor: mauro1855 (Zwame.pt)
 */

#include <stdio.h>
#include <stdlib.h>

int main(){

    char letra;

    printf("*** Letra Maiúscula ou Minúscula? ***\n");
    printf("Introduza uma letra: ");
    scanf("%c", &letra);

    if(letra>='a' && letra<='z')
        printf("A letra introduzida é minúscula\n");
    else if(letra>='A' && letra<='Z')
        printf("A letra introduzida é maiúscula\n");
    else
        printf("O caracter introduzido não é uma letra do alfabeto\n");

    return 0;
}

Cumps
 
Última edição:
Isso funciona? Não deveria ser >= e <= ?
Não me dei ao trabalho de testar, mas não me parece que isso aceite as letras {a, z, A, Z.}
 
Tens a função isupper do ctype.h.

Yah, e tal, mas quando algum prof pede num exame uma função para fazer isso, está à espera que faças os ciclos bonitinhos..
É só mesmo uma questão educacional, existem certamente outras formas mais fáceis (como essa que disseste), este código é o que está por detrás, só isso :) . (para adicionar ao repositório de Código em Stickie)

Cumps
 
Também podes fazer pela tabela ASCII, no teste podes é não sabe-la de cor mas também dá.

Abraço,
Diogo

Por acaso quando me pediram no exame fiz dessa forma, se bem que não sabia bem os códigos ascii :p:p:p (escrevi para lá "admitindo que o códigos ascii são xx e yy", lol)

Aparicio, quem está num nível pouco avançado e que nunca tenha visto um exemplo, é sempre útil. Para nós que já temos facilidade nisto, é fácil, para quem está num nível iniciado e tem facilidade, também não é difícil, mas para alguém que está à rasquinha, é mais complicado... Lembro-me que há um ano atrás tive um colega que me veio perguntar como se fazia....

Cumps
 
Última edição:
Eu fazia isso mas era utilizando a tabela ASCII... não fazia ideia que em C era possível comparar as letras com o > e < de forma assim directa, como está nesse programa.
 
Eu fazia isso mas era utilizando a tabela ASCII... não fazia ideia que em C era possível comparar as letras com o > e < de forma assim directa, como está nesse programa.
Tal como uma string é um array de números, sendo estes o código ascii do carácter, um char não passa de um número de 8 bits como outro qualquer.
A diferença é que ao imprimir com %c no printf aparece o carácter em vez do número.
 
Normalmente quem está a frequentar cadeiras de Programação Básica em C pode deparar-se num exame/teste com um exercício que peça este código que vou postar, ou então, se não for o caso (estudante), pode ser útil para um utilizador mais iniciado.
Assim, fica aqui este código muito simples que detecta se uma letra introduzia é maiúscula ou minúscula:

Código:
/* Função: Detecta se uma letra introduzida é maiúscula ou minúscula
* Propósito: Educacional
* Autor: mauro1855 (Zwame.pt)
*/

#include <stdio.h>
#include <stdlib.h>

int main(){

    char letra;

    printf("*** Letra Maiúscula ou Minúscula? ***\n");
    printf("Introduza uma letra: ");
    scanf("%c", &letra);

    if(letra>='a' && letra<='z')
        printf("A letra introduzida é minúscula\n");
    else if(letra>='A' && letra<='Z')
        printf("A letra introduzida é maiúscula\n");
    else
        printf("O caracter introduzido não é uma letra do alfabeto\n");

    return 0;
}

Cumps

Sabe dizer se é possível fazer com uma string? Para pegar números, letra maiuscula e minuscula?
 
Back
Topo