[C con Clase] Duda

Rubén Tomás chipy9 en hotmail.com
Lun Feb 28 21:52:17 CET 2011


En Dev-cpp lo podía compilar pero al ejecutarlo me daba error después de introducir el texto.
Aquí te dejo lo que yo habría hecho, pequeñas modificaciones más la correción a lo de los símbolos extraños.
Lo de los símbolos ocurre porque pones
while (Code[c] != '0')
cuando debería ser
while (Code[c] != 0)
sin comillas, porque si pones comillas sólo parará de leer la cadena cuando el caracter sea el número cero, no cuando haya un fin de cadena.
Bueno, aquí mis modificaciones:

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <iostream>
#include <cstdio>
#include <cctype>
using namespace std;
int main()
{
   system("color 0a");
   char Code[1001];
  
   for(int i=0; i<1001; i++) //Preferencia mía es usar bucles for en vez de while para estas cosas.
           Code[i]=0; 
  
   cout << "Introduce el codigo a encriptar" << endl << endl;
   cin.getline(Code, 1001); //Así puedes captar también los espacios, para encriptar un mensaje de mejor forma
   cout << endl; //Eliminado código innecesario
  
   for(int i=0; i< 1001 && Code[i] != 0; i++) //Otra vez, preferencia mía, creo que queda el código más limpio, arreglado el problema de los símbolos
           switch(Code[i]) { 
                   case ' ': //Para no hacer nada con los espacios
                        break;
                   case 'z':
                        Code[i]='a';
                        break;
                   default:
                        Code[i]++; //para simplificar el código
                        break;
           }
  
          
   cout << "El codigo encriptado es " << Code << endl;
   system("pause>nul");  
   return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Date: Mon, 28 Feb 2011 21:01:43 +0100
From: danimp97 en gmail.com
To: cconclase en listas.conclase.net
Subject: [C con Clase] Duda

/*Hola!
 
Estoy intentando hacer un programa en el que pongas un texto y cambie las letras por la siguiente en el alfabeto Ej: a->b  b->c...
 
He pensado en este código:*/
 
#include <iostream> 
#include <cstdio>
#include <cctype> 
using namespace std;
int main() 
{ 
   system("color 0a");
   char Code[1001];
   int c=0;
   
   while (c <=1001) {
         Code[c]=0;
         c++;
   }
   
   c=0;
   
   cout << "Introduce el codigo a encriptar" << endl << endl; 

   cin >> Code;
   cout << "" << endl;
   
   while (c<1001) {                   
         while (Code[c] != '0') {
               switch(Code[c]) {  
                               case 'z':

                                    Code[c]='a';
                                    c++;
                                    break;
                               default:
                                       Code[c]=Code[c]+1;

                                       c++;
                                       break;
               }
         }
   }
   
           
   cout << "El codigo encriptado es " << Code << endl;

   system("pause>nul");   
   return 0; 
}
 
 
 
/*Sale el mensaje correcto, pero después salen símbolos extraños. ¿A que es debido?*/

_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110228/9cca7d00/attachment.html>


Más información sobre la lista de distribución Cconclase