thedickblack

GUIA#3 Módulo #3 - Funciones y Cadenas

Sep 22nd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.64 KB | None | 0 0
  1. EJERCICIO 1
  2. /*Nombre:Nicolas Fernandez Pinto.
  3.   Fecha:22-09-2017
  4.   Nombre programa:Funcion STRREV.
  5.   Proposito:voltear una cadena.
  6. */
  7. char *strrev (char *cadena)
  8. {
  9.     int i = 0; //almacena el largo de la cadena.
  10. //-----------CICLO QUE CALCULA EL LARGO DE LA CADENA--------------  
  11.     while(cadena[i] != '\0'){
  12.         i++;
  13.     }
  14.    
  15.     int largo = i-1;
  16.     int j = largo;
  17.     char aux;
  18. //----------CICLO QUE REALIZA SWAP EN LOS CARACTERES PARA FINALMENTE ENTREGAR LA CADENA VOLTEADA------------------  
  19.     for(i=0;i<j;i++){
  20.         aux = cadena[i];
  21.         cadena[i]=cadena[j];
  22.         cadena[j]=aux;
  23.         j--;
  24.     }
  25.    
  26.     return cadena;
  27. }
  28.  
  29. EJERCICIO 2
  30.  
  31. /*Nombre:Nicolas Fernandez Pinto.
  32.   Fecha:22-09-2017
  33.   Nombre programa:Funcion STRCMP.
  34.   Proposito:verificar que cadena es mayor a otra lexicograficamente.
  35. */
  36. int mi_strcmp ( const char * cadena1, const char * cadena2 ){
  37.     int diferencia=0;
  38.     int i=0;
  39.     int carac_1,carac_2;
  40.     while((cadena1[i] != '\0') || (cadena2[i] != '\0')){ // itera mientras alguna cadena no haya llegado a su final.
  41.         if(cadena1[i] != cadena2[i]){
  42.             carac_1 = cadena1[i];
  43.             carac_2 = cadena2[i];
  44.             diferencia = carac_1-carac_2;//guarda la diferencia entre ellas.
  45.             break;
  46.         }
  47.         i++;
  48.     }
  49.     return diferencia;
  50. }
  51.  
  52. EJERCICIO 3
  53.  
  54. /*Nombre:Nicolas Fernandez Pinto.
  55.   Fecha:22-09-2017
  56.   Nombre programa:Criptografía Básica.
  57.   Proposito: desencriptar una oracion escrita en X abecedario al abecedario Normal.
  58. */
  59. void descifrar(char *cadenaCifrada, char *abcedarioAlterado){
  60.     char espacio[1] = " "; //cadena que contiene espacio.
  61.     char abcedarioNormal[27]   = "abcdefghijklmnopqrstuvwxyz";
  62.     int i,j;
  63.    
  64.     for (j = 0; j < strlen(cadenaCifrada); j++) {
  65.         for (i = 0; i < strlen(abcedarioAlterado); i++) {
  66.             if (abcedarioAlterado[i] == cadenaCifrada[j]) { //si caracter del abecedarioCifrado con el caracter del texto son iguales imprime el caracter correspondiente del abecedarioNormal.
  67.                 printf("%c", abcedarioNormal[i]);
  68.             } else if (toupper(abcedarioAlterado[i]) == cadenaCifrada[j]) {//cuando el caracter es una letra mayuscula compara con abecedarioCifrado en mayus y luego imprime la letra del abecedarioNormal en mayuscula correspondiente.
  69.                 printf("%c", toupper(abcedarioNormal[i]));
  70.             }
  71.         }
  72.         if ( (strchr(espacio, cadenaCifrada[j]) != NULL) || (ispunct(cadenaCifrada[j])) ) { // revisa si el caracter es un espacio o algun signo y lo imprime sin realizar algun cambio.
  73.             printf("%c", cadenaCifrada[j]);
  74.         }
  75.     }
  76. }
Add Comment
Please, Sign In to add comment