Codificación y decodificación de texto basada en código ASCII
#¿Contiene? lt string gt
¿Usar? ¿Espacio de nombres? std
¿Clase? Contraseña {Pública:
¿No es válida? code();//Codificación
¿No es válida? decode(); //Decodificación
¿No es válido? Select(); //Selección de usuario
¿No es válido? dog(); //Ingrese una cadena codificada y un texto codificado.
¿Anulado? cat(); //Ingrese el texto y la cadena codificada a decodificar.
Password(){//Constructor predeterminado, llamado al definir el objeto, usado en int? m;
for(int?i?=?0;i?lt?95;I)//32-126 tiene 95 caracteres.
{
for(int?j?=?0;j?lt?95;j)
{
m? =?Yo? ?j;
Si (m? gt? 95)//Si m? ¿gt? 95 más 32 excede el rango de codificación (32-126)
m? -=?95; //Resta 95 solo para volver al rango de codificación.
clave[i][j]? =?metro? ?32; //Agrega 32 para convertirte en un personaje en (32-126)
}
}
}Privado:
¿Ciel? Clave[95][95];
¿Cadena? s1, s2, S3;
int? ¿jk? ;}; ¿vacío? Contraseña::dog(){// ¿Ingresar cadena codificada y texto codificado? ¿corto? ¿Eh? Por favor ingrese la cadena de codificación:? ¿Eh? endl
fflush(stdin);
getline(cin, s 1);? ¿corto? ¿Eh? Por favor ingrese el texto para codificar:? lt ltendl
fflush(stdin);
getline(cin, S2);
}
¿No es válido? Contraseña::cat(){//Ingrese el texto a decodificar. ¿corto? ¿Eh? Por favor ingrese la cadena de codificación:? ¿Eh? endl
fflush(stdin);
getline(cin, s 1);? ¿corto? ¿Eh? Por favor ingrese texto decodificado. ¿Eh? endl
fflush(stdin);
getline(cin, S3);
}¿No es válido? Contraseña::código(){//código? Perro();
¿Cuándo? (?s1.length()? lt?s2.length()?)
s1? =?s 1; //Si la longitud de la cadena codificada es menor que el texto codificado, concatene s1 (cadena codificada) consigo mismo hasta que la longitud de s1 sea mayor o igual que s2 (texto codificado).
t1? =?s1.substr(?0,s2.length()?);//Intercepta la cadena con la misma longitud que s2
cout? ¿Eh? La cadena codificada es:? ¿Eh? endl
for(int?i?=?0;i?lt?S2.length();i)
{
j? =?s1[yo]? -?32?;
k? =?s2[yo]? -?32?; // Encuentra las coordenadas de la matriz bidimensional correspondiente a cada carácter en el texto codificado.
¿cómo? ¿Eh? Clave[j][k];
}
cout? lt ltendl
}¿No es válido? Contraseña::decode(){// ¿Decodificación, equivalente a conocer coordenadas unidimensionales?
cat();
¿Cuándo? (?s1.length()? lt?s3.length()?)
s1? =?s 1;
s1? =?s1.substr(?0,s3.length()?);
cout? ¿Eh? La cadena decodificada es:? ¿Eh? endl
for(int?i?=?0;i?lt?S3.length();i)
{
k? =?0;
j? =?s1[yo]? -?32;? //Determina el número de línea a recorrer.
while(s3[i]?!=?Key[j][k])//Recorre cada fila de la tabla de contraseñas y encuentra la columna correspondiente al carácter igual al carácter a decodificar el número de fila.
k ;
cout lt lt? Conversión Static_Force ltchar gt(k? ?32); //El número de columna más 32 es el carácter decodificado.
}
¿cout? ¿Eh? endl}¿No es válido? Contraseña: :elegir(){? mientras(1)
{
int? Yo;
¿cout? ¿Eh? Por favor ingresa la acción que deseas realizar? ¿Eh? endl
cout? ¿Eh? ¿"1 código"? ¿Eh? endl
cout? ¿Eh? ¿"2-decodificación"? ¿Eh? endl
cout? ¿Eh? ¿"3-preceptos"? ¿Eh? endl
fflush(stdin);
cin? gt gt? Yo;
Interruptor (1)
{
¿Funda? 1:
{
código();
Rotura;
}
¿Caso? 2:
{
decodificar();
Romper
}
¿Caso? 3:
Salir(1);
Valor predeterminado:
cout? ¿Eh? "¡¡¡Elección equivocada!!!"? ¿Eh? endl
}?
}
}
int? principal(){? ¿contraseña? p;
p .choose();
¿Volver? 0;}