Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

tipereira

trocar letras por numeros

Mensagens Recomendadas

tipereira

boas, estou a tentar criar um programa :P , só pra satisfazer os meus caprichos e tb treinar um pouco :thumbsup: , certo é que estou com uma dificuldade :confused: , certamente é algo simples e eu não estou a chegar la :wallbash:, mas o que eu pretendo é fazer um programa em #C, que recebe as vogais e troca por números e virse-versa

A - 5

E -4

I - 3

O - 2

U - 1

se o utilizador introduzir por exemplo:

OUEAI

e o programa devolve:

21345

se o utilizador introduzir por exemplo:

15243

e o programa devolve:

AUEOI

acho k já me fiz entender o que pretendo :) , e vou deixar o primeiro esboço que me veio a cabeça e que me pareceu mais lógico:

char frase1[200], frase2[200];

    int i,x;

    printf ("\n Introduza o conteúdo para trocar por numeros:\n");

    scanf ("%s", frase1);

    for (i=0; i>=200;i++)

    {

    if (frase1 == "a")

        frase2 = 1;

    else

        if (frase1 == "e")

        frase2 = 2;

    else

        if (frase1 == "i")

        frase2 = 3;

    else

        if (frase1 == "o")

        frase2 = 4;

    else

        if (frase1 == "u")

        frase2 = 5;

}

      x= 0;

      for(x=0;x>=200; x++)

        printf ("%s\n", frase2);

eu se calhar deveria de utilizar um strcmp, mas quem poder ajudar, agradecia a ajuda...

THX!  :P :thumbsup: :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Assim de repente, e tentando não ser muito simplista, porque não subtrais um número ao caracter?

Se fores a asciitable.com, consegues ver que os caracteres estão ligados a um valor especifico... em que o '0' é muito diferente de 0 e o 'a' ou 'A' não são 0 ou 1.

Então podes, para cada um dos caracteres, subtrair um dado valor para ajustar, por exemplo, o 'a' (ou 'A', o que vier primeiro) ao valor 0 e levar as coisas daí em frente. Podes criar uma função que faça essa conversão e antes de a chamares apenas tens de confirmar que o caracter é alfanumérico (isalphanum() ) ou se é só uma letra através de comparação de intervalos e só converteres as letras e deixares o resto. Podes, se quiseres, fazer também o inverso. Ou seja, passares os que são números. E tudo com somas e subtracções. :)

Tás a ver a ideia? Claro que podes fazer como estás a fazer... mas é muito feio... principalmente para cobrir todas as possibilidades de caracteres.

Outra coisa, da forma como implementaste o teu código, a instrução:

for(x=0;x>=200; x++)
        printf ("%s\n", frase2);

Vai imprimir 200 vezes uma string sem caracteres uma vez que o valor 5 equivale a caracteres de controlo. Para o que queres fazer, tens de usar algo como:

for(x=0;x>=200; x++)
        {
        printf ("%d", frase2[x]);
        printf("\n");
        }

Em vez dos if's encadeados, podes sempre usar um switch(). Já que é para treinar, fica bem. :thumbsup:


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tipereira

ja estou a perceber o que tu estas a dizer...

eu vou ver se consigo fazer isso...

eu estava a utilizar os if, por faço sempre com if, e dp passo o devido para switch e faço uns menuzinho, para ter uma melhor apresentação, mas isso é o menos...

obg pela ajuda... :P

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.