Ir ao conteúdo
  • Cadastre-se

Dúvida em exercício


Koyro

Posts recomendados

O exercício é o seguinte:

Uma forma muito simples de codificarmos uma mensagem consiste em deslocar o alfabeto de uma posição. Assim, a letra 'a' passa a ser a representada pela letra 'b' pela letra 'c', a letra 'c' pela letra 'd', e assim por diante. Analogamente para as letras maiúsculas. Como o deslocamento é cíclico a letra 'z' passa a ser representada pela letra 'A'.

O deslocamento afeta apenas as letras do alfabeto e as demais são preservadas. Por exemplo,

“abc-efg” passa a ser “bcd-fgh”.

Implemente esse algoritmo.

Eu fiz o seguinte:


main(){
int n=0,i,c; char m[10];
printf("Entre com a string:");
gets(m);
for(i=0;m[i]!='\0';i++){n++;}
for(i=0;i<n;i++){
c=toascii(m[i]);
m[i]=c+1;}
printf("%s",m);
getchar();
getchar();
}

O problema é que ele pega tuudo e transforma no seu sucessor na tabela ASCII, e no enunciado ele quer que apenas os caracteres do alfabeto sejam

alterados. Alguém tem uma ideia do que fazer?

Desde já, obrigado.

Putz, agora eu vi outro erro. ele transforma o "z" em "{" .-.

alguém ajuda?

Link para o comentário
Compartilhar em outros sites

Um exemplo bem simples:


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

int main(void)
{
int n = 0;
int i;
int c;
char m[11];

printf("Entre com a string: ");
for ( i = 0; i < 10; i++ ) // Confirma que nao entrara mais do que 10 caracteres, pra nao estourar o vetor
m[i] = getchar();

m[10] = '\0'; // Terminador de string

for( i = 0; i < strlen(m); i++ ) // Passa por todas as posições do vetor
{
if ( ( m[i] >= 'A' && m[i] < 'Z' ) || ( m[i] >= 'a' && m[i] < 'z' ) ) // Se forem caracteres permitos, então soma em 1
m[i]++;
else
{
if ( m[i] == 'Z' ) // Se for Z, retorna para A
m[i] = 'A';
else
{
if ( m[i] == 'z' ) // Se for z, retorna para a
m[i] = 'a';
}
}
}

printf("%s",m);

return 0;

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!