1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida básica [ C++ ]

Discussão em 'Programação' iniciada por prosaQue, 7 de Janeiro de 2008. (Respostas: 4; Visualizações: 4826)

  1. prosaQue

    prosaQue Power Member

    Código:
    char c = (char) (c - 'a' + 'A');
    
    Na prática acho que este código transforma uma letra minúscula em maiúscula. Mas não percebo como. Nem percebo a necessidade de forçar o (char). Dispensável não? :paranoid:
     
  2. AragTey

    AragTey Power Member

    Bom supondo que isso é C:

    Código:
    char letra = 'i';
    char c = char (letra - 'a' + 'A');
    
    este código usa a variável letra, que contem o letra i, e substrai-lhe a letra 'a', mas em ASCII, onde 'a' é a primeira letra, e depois soma a posicao de letra 'A', que é a primeira letra em maiusculas. No final fazes o cast para converte o codigo ASCII para char.

    supondo que em ASCII temos a = 97, i= 105 e A = 65, logo

    'i' - 'a' + 'A' = 105 - 97 + 65 = 73 que corresponde á letra 'I';

    http://www.technology.niagarac.on.ca/courses/comp530/images/AsciiTable.jpg
     
  3. prosaQue

    prosaQue Power Member

    Obrigado pelo explicação, muito exclarecedora ;)
     
  4. OubeLa

    OubeLa Power Member

    Podes também usar a função toupper em C++.
     
  5. Tyran

    Tyran Power Member

    também ah em C, mas o objectivo aqui era perceber como funcionava aquele exemplo

    cumpzz
     

Partilhar esta Página