Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal, estou desenvolvendo a cifra de César, porém não conseguo imprimir apenas palavra, esta imprimindo caracteres como '+' '=' '#', isso porque não consigo deixar no looping de letras. A

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int i,j,chave,n;
char frase[100];
char letra;
                    scanf("%d",&n);
                            for(j=0;j<n;j++){

                    scanf("%s",&frase);
                    scanf("%d",&chave);
                    for(i=0;i<strlen(frase);i++){


                        frase[i] = (frase[i] - chave);

                    }
                    printf("%s\n",frase);

                }

return 0;
}

lguém pode me ajudar?. Segue o código.

Postado

@Pedro Henrique Faria Teixe

// Quando frase[i] for maior que Z(0x5A) ou z(0x7A)
if(frase[i] > Z ou z)
  frase[i] = frase[i] - 26;

// Quando frase[i] for menor que A(0x41) ou a(0x61)
if(frase[i] < A ou a)
  frase[i] = frase[i] + 26;

então é só implementar pra verificar quando a letra for minúscula ou maiúscula.

obs: isso só serve se você inserir uma chave de range (-26:26), pra chaves maiores é só trocar o if por while.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!