Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda en C

Estas en el tema de Duda en C en el foro de C/C++ en Foros del Web. Buenas!! Quisiera saber, si es posible, como podría llegar a realizar lo siguiente... Cita: Cita: "Leer una secuencia de letras y escribirla en pantalla codificada, ...
  #1 (permalink)  
Antiguo 09/01/2012, 13:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 1
Duda en C

Buenas!!

Quisiera saber, si es posible, como podría llegar a realizar lo siguiente...

Cita:
Cita:
"Leer una secuencia de letras y escribirla en pantalla codificada, sustituyendo cada letra por la letra que está tres posiciones después"
No quiero el código hecho ni mucho menos, simplemente, como hago para que el primer caracter introducido me lo sustituya por el 3º...

Es decir, introduzco "Prueba" y el resultado sea "ebapru" u/o "ebaeba"..


Es la primera vez que estoy dando C, y quizas a muchos le parezca absurdo lo que hay que hacer...,pero todo lo que intento no da resultado alguno...


Gracias!
Saludos.
  #2 (permalink)  
Antiguo 09/01/2012, 13:57
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Duda en C

Las variables tipo char en C/C++ no son almacenados como símbolo, sino como un número entero, de acuerdo a la tabla de caracteres ASCII http://es.wikipedia.org/wiki/ASCII
Es decir:
Código C++:
Ver original
  1. char c='a';// lo que se guarda es 97
  2. int x = c;//x tiene almacenado 97
  3. x+=3;
  4. c=x;// c ahora almacena 100 o lo que equivale a d
Con esto ya debes de poder solucionar tu problema. Si tienes dudas coloca tu implementación para resolverlas.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #3 (permalink)  
Antiguo 09/01/2012, 14:11
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Duda en C

Cita:
Iniciado por CapacProg Ver Mensaje
Las variables tipo char en C/C++ no son almacenados como símbolo, sino como un número entero, de acuerdo a la tabla de caracteres ASCII [URL="http://es.wikipedia.org/wiki/ASCII"]http://es.wikipedia.org/wiki/ASCII[/URL]
Es decir:
Código C++:
Ver original
  1. char c='a';// lo que se guarda es 97
  2. int x = c;//x tiene almacenado 97
  3. x+=3;
  4. c=x;// c ahora almacena 100 o lo que equivale a d
Con esto ya debes de poder solucionar tu problema. Si tienes dudas coloca tu implementación para resolverlas.
Eso ya lo he intentado, realicé algo parecido, solicitando la usuario una letra, y mostrando la tercera letra que le continuaba de la tabla ASCII, pero segun el profesor, no es lo que pide, si no;

Se solicita una palabra letra a letra, por ejemplo "Prueba" (introduciendo p, luego r, luego u, etc...) Y el resultado debe ser, que la letra "P" sea sustituida por la tercera letra, de las letras introducidas que conforman la palabra que se quiere introducir.

Dando como resultado "ebaeba" ó "ebapru".


Saludos.
  #4 (permalink)  
Antiguo 09/01/2012, 14:27
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Duda en C

Eso es más fácil que la tabla del 1. Sino fíjese

Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char** argv) {
  8.     string palabra="prueba";
  9.     cout<<palabra<<endl;
  10.     int j;
  11.     for (int i = 0; i < palabra.length(); i++) {
  12.         if((i+3)<palabra.length())
  13.         {
  14.             palabra[i]=palabra[i+3];
  15.         }
  16.         else
  17.         {
  18.             j=(i+3)-palabra.length();
  19.             palabra[i]=palabra[j];
  20.         }
  21.     }
  22.  
  23.     cout<<palabra<<endl;
  24.     return 0;
  25. }

Si te gusta no olvides dar karma +
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #5 (permalink)  
Antiguo 10/01/2012, 13:25
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 10 meses
Puntos: 94
Respuesta: Duda en C

Hola Riddlev9! mas o menos en C seria asi el codigo:

char vec[MAX];
char c, aux;
int i,j,k=0;

while((c=getchar())!='\n')
{
vec[i]=c;
i++;
}

vec[i]='\0';

j=i

for(i=0;i<j;i++)
{
if((k+3)<j)
{
aux=vec[k+3];
vec[k+3]=vec[k];
vec[k]=aux;
k++;
}
else
break;
}

printf("Resultado: %s\n",vec);


El codigo no lo probe pero supongo que debe andar o esta muy cerca, no hic ningun comentario para que vos deduscas el codigo y t des cuenta de lo que hice, pero igual si no lo entendes pregunta

Espero t sirva. Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:55.