Red de conocimiento informático - Material del sitio web - Codificación y decodificación de texto basada en código ASCII

Codificación y decodificación de texto basada en código ASCII

#¿Incluir? ltiostream gt

#¿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;}