Crear un programa en C con ASCII
#1
Escrito 18 de julio de 2012 - 20:18
"Con propósitos de protección, un mensaje de texto se codifica
reemplazando cada vocal por el número (1 a 5) correspondiente al orden
natural de las vocales y cada consonante es codificada por la
consonante que le sigue en el abecedario. Por ejemplo, la consonante b
es codificada por la consonante c. Sin embargo, existen casos
especiales, por ejemplo, la consonante d debe ser codificada por la
consonante f y no por la vocal e (existen 5 de estos casos).
Escribir una función que lea, carácter a carácter, un texto finalizado
con un '.' e imprima, también carácter a carácter, el respectivo texto
codificado.
Ayudas:
--Estudie como leer caracteres en C (opción "%c" con la función scanf).
--Para facilitar la codificación puede utilizar el código ASCII"
#2
Escrito 18 de julio de 2012 - 21:13
PS: Está bastante fácil......pregunta, puedes usar arreglos????
Saludos
There I was. Face-to-face with the mother of all ugly. So I say "Come get some", and BLAM, no more Mr. Nasty Face.
-Ashley 'Ash' J. Williams


Síganme en Twitter @JefeMaestro337
function dead_already(){
if(is_tshirt_dirty(MAX)){
alert('Yupikayey motherfucker!');
return false;
}else{
return false
}
}
:
#3
Escrito 18 de julio de 2012 - 23:17
#4
Escrito 19 de julio de 2012 - 09:20
Saludos
There I was. Face-to-face with the mother of all ugly. So I say "Come get some", and BLAM, no more Mr. Nasty Face.
-Ashley 'Ash' J. Williams


Síganme en Twitter @JefeMaestro337
function dead_already(){
if(is_tshirt_dirty(MAX)){
alert('Yupikayey motherfucker!');
return false;
}else{
return false
}
}
:
#5
Escrito 19 de septiembre de 2012 - 23:53
me gustaría saber cual es la solución, manda el código ps xD me pareció re entrete
#6
Escrito 23 de septiembre de 2012 - 15:38
Haz otra función que te calcule la siguiente letra del alfabeto: si el caracter ingresado es 'd', 'h', 'n' o 't', que retorne caracter + 2 (2 teclas mas adelante), en caso contrario, retorna caracter+1. (En ascii, los caracteres son consecutivos en orden alfabetico, y tienen representación numérica (ej: a=97, b=98, c=99, etc), puedes comprobar esto escribiendo en tu código " char letra = 'a'; printf("%i",a); " ).
Por cada letra del texto, si es vocal (usamos la primera funcion), la reemplazamos por su numero equivalente (unos pares de if).
Por el contrario, si es consonante, hacemos uso de la segunda funcion.
saludos !
Lenguajes de programación que manejo: C/C++, Java, C#, Php, Python.
También manejo tecnologías web: HTML, CSS, jQuery, Php y bases de datos Mysql.
Contacto:
Celular: 9 6636283 (Giovanni Benussi)
Email: giovanni.benussi@usach.cl
Msn: known_life@hotmail.com
Skype: giovannibenussi
Facebook: www.facebook.com/giovanni.benussi
#7
#8
Escrito 01 de octubre de 2012 - 03:30
void codificar(char *string ){
int i;
for(i=0;i<strlen(string);i++){
switch (*(string + i)){
//si son vocales, le asignamos el número correspondiente
case 'a':
case 'A':
*(string+i) = '1';
break;
case 'e':
case 'E':
*(string+i) = '2';
break;
case 'i':
case 'I':
*(string+i) = '3';
break;
case 'o':
case 'O':
*(string+i) = '4';
break;
case 'u':
case 'U':
*(string+i) = '5';
break;
//si son consonantes que preceden a una vocal, le sumamos 2 para saltar la vocal
case 'd':
case 'h':
case 'n':
case 't':
case 'D':
case 'H':
case 'N':
case 'T':
*(string+i) = *(string+i) + 2;
break;
//si es la z o Z, como precede a la "a", no basta con sumarle 1
case 'z':
*(string+i) = 'b';
break;
case 'Z':
*(string+i) = 'B';
break;
//también podríamos ver los símbolos que no son letras, esto es un ejemplo, pero lo conveniente
//sería verificar antres de entrar al switch case si el carácter es una letra o no
case ' ':
case '.':
case ',':
case '-':
break;
default:
*(string+i) = *(string+i) + 1;
break;
}
}
}
Entonces desde el main vas leyendo carácter a carácter y guardando en un buffer, y cuando te metan un punto, terminas de leer y llamas a la función pasándole como parámetro la cadena de carácteres. Como lo que le pasas es el puntero a la cadena, entonces te modifica la cadena automáticamente, por eso la función es void.Un ejemplo de uso:
int main(){
char palabra[100];
printf("Ingrese palabra a codificar: ");
scanf("%s", palabra);
codificar(palabra);
printf("\nPalabra codificada: %s\n", palabra);
return 0;
}
Saludos
Este tema ha sido editado por zafrada: 01 de octubre de 2012 - 03:37


"Ateísmo es a religión, como abstinencia es a posición sexual"
#9
Escrito 01 de octubre de 2012 - 19:37
Saludos
There I was. Face-to-face with the mother of all ugly. So I say "Come get some", and BLAM, no more Mr. Nasty Face.
-Ashley 'Ash' J. Williams


Síganme en Twitter @JefeMaestro337
function dead_already(){
if(is_tshirt_dirty(MAX)){
alert('Yupikayey motherfucker!');
return false;
}else{
return false
}
}
:
0 usuario(s) viendo este foro
0 miembros, 0 invitados, 0 usuarios anónimos




Este tema está cerrado









