[C con Clase] Duda

alvaro martin garcia purifuri en gmail.com
Mar Mar 1 11:46:15 CET 2011


En primer lugar, se agradecería si en el asunto mandas algo más descriptivo
que "[C con Clase] Duda"
En segundo lugar, el rellenar de '0' el array de chars no es necesario.
Cuando lee por teclado, también se lee el "enter" (lo puedes preguntar saber
preguntando si el caracter es '\0', pero no sirve de nada porque luego lees
por teclado y se cambian esos ceros
¿Y si alguien mete por teclado un número, una mayúscula o un símbolo?
Otro comentario que, y es más cuestión de optimización que otra cosa.
Normalmente para el tipo de bucle que tienes, esos dos bucles seguidos se
suelen hacer en uno solo, Aunque como lo tienes con los dos bucles es un
pelín más rápido, bien es cierto que si tienes un código un poco más
complejo se puede complicar a la hora de seguir tu programa si lo haces así,
pero bueno, igualmente esa parte está bien. Aunque no estaría de más
comprobar que el carácter que te meten está entre 'a' y 'z' (el switch creo
que admite rangos (corregidme si me equivoco), es decir, puedes poner "case
'a'..'y':").

Los símbolos raros es porque lo último que guarda en tu array, es el
"enter", mientras que tú compruebas que sea igual 0, es decir, en "a00000",
el resultado sería "a(enter)(indeterminado)"... En vez de en el while
comprobar por si es igual a 0, deberias comprobar si es igual a '\0'

------------------------------
>
> Message: 5
> Date: Mon, 28 Feb 2011 21:01:43 +0100
> From: dmp dmp <danimp97 en gmail.com>
> To: "cconclase en listas.conclase.net" <cconclase en listas.conclase.net>
> Subject: [C con Clase] Duda
> Message-ID:
>        <AANLkTimBbDTzqdZ_kJ_VfhoM3NCrpQUnEwtCoCRvGd2=@mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> /*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?*/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110301/66e959ea/attachment.html>


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