Autor
|
Tema: NEcesito ayuda con un encriptador (Leído 5,363 veces)
|
Miguel97
Desconectado
Mensajes: 1
|
Estoy empezando a programar y necesito ayuda para asignar valores. Tengo que transformar una palabra en numeros osea 0=a -z=25 el problema esque no se como hacer esa comparacion se me ocurrio hacerlo con cadenas char . alguna sugerencia?
|
|
|
En línea
|
|
|
|
engel lex
|
los char no son solo letras, son unas variables de 8bit, es decir se pueden interpretar como numeros... puedes hacer int letra = 'a'; cout<< letra << endl;
y verás que te da el numero, así que para hacer que a sea 0 y z 25 es solo int letra = char_otro-'a'; cout<< letra << endl;
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Gunhack
Desconectado
Mensajes: 42
|
Date una idea, el lenguaje C convierte automáticamente los caracteres a su código ASCII correspondiente cuando guardas un tipo char en un tipo int, ahora, en el código ASCII, a la letra "a" le corresponde el numero 97, lo demás son sumas o restas #include <iostream> using namespace std; int main() { int letra = 'a' - 97; cout << letra << " " << endl; for(int i = 0; i < 25; i++) { cout << ('a' + i) - 97 << " "; } cout << endl; for(int i = 0; i < 26; i++) { cout << (char)('a' + i) << " "; } }
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Es un error pensar que los caracteres se guardan como enteros positivos. El estándar C dice que eso depende de la implementación. Para convertir una letra minúscula del alfabeto a un rango de 0 a 26 no se deben usar los números mágicos. Se debe usar la 'a' minúscula. El estándar ASCII nos asegura que 'a' estará al principio de los alfabetos de minúsculas. ASCII en C puede tener un rango de -128 a 127 o de 0 a 255. Así para el número de la 'b', para que sea 1, se debe hacer 'b'-'a'.
|
|
|
En línea
|
|
|
|
m0rf
Desconectado
Mensajes: 828
BACK!
|
los char no son solo letras, son unas variables de 8bit, es decir se pueden interpretar como numeros... puedes hacer int letra = 'a'; cout<< letra << endl;
y verás que te da el numero, así que para hacer que a sea 0 y z 25 es solo int letra = char_otro-'a'; cout<< letra << endl;
+1 Ya que hay un mod en el hilo, propongo que se incluya "encriptador" en la lista para que se substituya por cifrador. Lo siento porque no tiene nada que ver con el tema pero lo dejo caer a ver si hacemos de ehn un lugar sin la palabra encriptarr y variantes. Saludos.
|
|
|
En línea
|
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
+1
Ya que hay un mod en el hilo, propongo que se incluya "encriptador" en la lista para que se substituya por cifrador.
Lo siento porque no tiene nada que ver con el tema pero lo dejo caer a ver si hacemos de ehn un lugar sin la palabra encriptarr y variantes.
Saludos.
Guste o no, desde que la palabra entra en el diccionario de la RAE, es correcta. Lo único curioso es que "_encriptar" queda como un término algo inestable, ya que "_desencriptar" sí que no existe.
|
|
« Última modificación: 12 Abril 2016, 09:38 am por ivancea96 »
|
En línea
|
|
|
|
Gunhack
Desconectado
Mensajes: 42
|
Es un error pensar que los caracteres se guardan como enteros positivos. El estándar C dice que eso depende de la implementación. Para convertir una letra minúscula del alfabeto a un rango de 0 a 26 no se deben usar los números mágicos. Se debe usar la 'a' minúscula. El estándar ASCII nos asegura que 'a' estará al principio de los alfabetos de minúsculas. ASCII en C puede tener un rango de -128 a 127 o de 0 a 255. Así para el número de la 'b', para que sea 1, se debe hacer 'b'-'a'.
Gracias por el dato! Eso no lo sabía Y en el estándar de C++ sucede lo mismo?
|
|
|
En línea
|
|
|
|
m0rf
Desconectado
Mensajes: 828
BACK!
|
Guste o no, desde que la palabra entra en el diccionario de la RAE, es correcta. Lo único curioso es que "cifrar" queda como un término algo inestable, ya que "descifrar" sí que no existe.
http://dle.rae.es/?id=Ceu04o5Saludos.
|
|
|
En línea
|
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Evidentemente. Puse _encriptar y _desencriptar. lo que no sabía es que el foro corrigiese esas palabras automáticamente y sin avisar.
|
|
|
En línea
|
|
|
|
m0rf
Desconectado
Mensajes: 828
BACK!
|
Evidentemente. Puse _encriptar y _desencriptar. lo que no sabía es que el foro corrigiese esas palabras automáticamente y sin avisar.
A mí me paso lo mismo en el tema que cree y me provoco muchos dolores de cabeza hasta que pille que lo modificaba el foro xD. Que sepas que eres el puto amo porque no existe pensaba que decías descifrar, ahora en serio estos de la rae tienen problemas o algo? Como puedes incluir encriptarr y no desencriptarr? Se van a quedar los datos ahí "escrambleados" para siempre ahhaahahha. Épico simplemente. Saludos.
|
|
|
En línea
|
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
|
|
|
|
|