Jump to content

Ajuda em codigo


Lokingor
 Share

Recommended Posts

Oi, sou novo aqui e estou aprendendo a linguagem C e acabei de assistir um tutorial para iniciantes e agora estou querendo aprender mais. Eu queria fazer um programa onde letras são substituidas em uma frase como por exemplo:

T é substituida por P

E é substituida por O

N é substituida por L

I é substituida por A

S é substituida por R

(E o inverso tambem)

Então alguem digita:

Oi como voce vai?

E no programa aparece:

Ea ceme veco via?

Eu não faço a minima ideia de como fazer isto e se alguem conseguir me ajudar eu agradeceria muito!

OBS: Sou Brasileiro e um amigo de Portugal me indicou o site!

Link to comment
Share on other sites

Podes pedir uma frase ao usuário usando funções como scanf() ou gets().

Depois tens uma string com a frase. Imagine-mos a seguinte string:

char  frase[] = "Oi como voce vai?";  //no programa, esta string viria do utilizador

Podes ler caracteres individuais da string como se esta fosse um array:

printf("%c",  frase[3]); //imprime o 'c', que está na posição 3. Lembra-te que começa no zero

Também podes escrevê-lo:

frase[3] = 'p';
printf("%s", frase); //O resultado é "Oi pomo voce vai?"

E claro, em vez de usares números pré-definidos, podes usar variáveis int para aceder a uma posição:

int index = 5;
printf("%c", frase[index]); //imprime 'm'

❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents

A list  of command line apps

Link to comment
Share on other sites

Acho que eu sou novato de mais ainda para fazer isto pois não entendi o que o "c" tem a ver com o 3. Eu só consigo fazer coisas basicas por enquanto e não sei como eu poderia montar um programa que mude as letras que eu quiser pelas que eu quiser. Se puder me ajudar um pouco mais eu agradeceria muito. Obrigado.

Link to comment
Share on other sites

Sabes o que é um array (também chamado de matriz ou vetor)?

Se não, aconselho-te a leres http://www.mtm.ufsc.br/~azeredo/cursoC/aulas/c500.html ou http://www.dee.feis.unesp.br/graduacao/disciplinas/langc/modulo_linguagemc/modulo6.htm

Bom, a partir daí, temos que uma String (por exemplo, "ola") não é mais que uma matriz de caracteres.

Quando escreves o código:

char minhaString[] = "ola Joao";
 

Essa frase vai ser guardada da seguinte forma na memória:

o | l | a |   | J | o | a | o | \0

Ou seja, cada caracter vai ser guardado numa posição da matriz. Assim, da mesma forma que podes aceder a um número de uma matriz usando a sua posição:

int matriz_de_numeros[] = {2, 4, 6, 7, 9};
matriz_de_numeros[3] == 7 //Verdadeiro

Também podes aceder a caracteres da string pela sua posição:

char minhaString[] = "ola Joao";
minhaString[4] == 'J' //Verdadeiro, porque o caracter que está na posição 4 é o J (lembra-te que começa no zero)

Explicado por outra pessoa: http://cafepreto.posterous.com/strings-36

❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents

A list  of command line apps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.