martes, 3 de enero de 2012

Desarrolle un programa en C al que se le pase por línea de comandos dos parámetros. El primero puede ser \l o \u, y el segundo, el nombre de un fichero. Si el primero de ellos es \l, se debe pasar a minúsculas todas las mayúsculas del fichero. Si es \u, hay que convertir a mayúsculas todas las minúsculas.

/*Desarrolle un programa en C al que se le pase por línea de comandos dos
parámetros. El primero puede ser \l o \u, y el segundo, el nombre de un
fichero. Si el primero de ellos es \l, se debe pasar a minúsculas todas las
mayúsculas del fichero. Si es \u, hay que convertir a mayúsculas todas las
minúsculas.*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

FILE *f1,*fres;
char nf1[50]="personas.txt";
char nf2[50]="resultado.txt";
char ch;
char ch2;
char c;
char cres;


char minamay (char c)
{
    switch(c) {
        case 'a': return('A');
                  break;
        case 'b': return('B');     
                  break;
        case 'c': return('C');     
                  break;
        case 'd': return('D');     
                  break;
        case 'e': return('E');     
                  break;
        case 'f': return('F');     
                  break;
        case 'g': return('G');     
                  break;
        case 'h': return('H');     
                  break;
        case 'i': return('I');     
                  break;
        case 'j': return('J');     
                  break;
        case 'k': return('K');     
                  break;
        case 'l': return('L');     
                  break;
        case 'm': return('M');     
                  break;
        case 'n': return('N');     
                  break;
        case 'ñ': return('Ñ');     
                  break;
        case 'o': return('O');     
                  break;
        case 'p': return('P');     
                  break;
        case 'q': return('Q');     
                  break;
        case 'r': return('R');     
                  break;
        case 's': return('S');     
                  break;
        case 't': return('T');     
                  break;
        case 'u': return('U');     
                  break;
        case 'v': return('V');     
                  break;
        case 'w': return('W');     
                  break;
        case 'x': return('X');     
                  break;
        case 'y': return('Y');     
                  break;
        case 'z': return('Z');     
                  break;
        default:  return(c);
                  break;         
              }
 }

char mayamin (char c)
{
    switch(c) {
        case 'A': return('a');
                  break;
        case 'B': return('b');     
                  break;
        case 'C': return('c');     
                  break;
        case 'D': return('d');     
                  break;
        case 'E': return('e');     
                  break;
        case 'F': return('f');     
                  break;
        case 'G': return('g');     
                  break;
        case 'H': return('h');     
                  break;
        case 'I': return('i');     
                  break;
        case 'J': return('j');     
                  break;
        case 'K': return('k');     
                  break;
        case 'L': return('l');     
                  break;
        case 'M': return('m');     
                  break;
        case 'N': return('n');     
                  break;
        case 'Ñ': return('ñ');     
                  break;
        case 'O': return('o');     
                  break;
        case 'P': return('p');     
                  break;
        case 'Q': return('q');     
                  break;
        case 'R': return('r');     
                  break;
        case 'S': return('s');     
                  break;
        case 'T': return('t');     
                  break;
        case 'U': return('u');     
                  break;
        case 'V': return('v');     
                  break;
        case 'W': return('w');     
                  break;
        case 'X': return('x');     
                  break;
        case 'Y': return('y');     
                  break;
        case 'Z': return('z');     
                  break;
        default:  return(c);
                  break;         
              }
 }

int main(int argc, char *argv[]) {

     if (argc!=3) /* argc should be 2 for correct execution */
    {
        /* We print argv[0] assuming it is the program name */
        printf("Uso: %s nombre de fichero\n", argv[0] );
        printf("Número de parámetros: %d",argc);
           }
    else
    {
         printf("El primer parámetro es %s\n",argv[1]);
         printf("El segundo parámetro es %s\n",argv[2]);
         f1=fopen(argv[2],"r");
        if( f1 == NULL )
         {
               puts("No se puede abrir el fichero");
               exit(EXIT_FAILURE);
         }
         fres=fopen("resultado.txt","w+");
         if( fres == NULL )
         {
               puts("No se puede abrir el fichero");
               exit(EXIT_FAILURE);
         }
       switch( argv[1][0] )
       {
         case 'l': ;
         
              do {
                  c=getc(f1);
                  printf("%d",c);
                  if (c==EOF) {
                     break;
                     }
                  else {
                     cres=mayamin(c);
                     putc(cres,fres);    
                  }
                 } while (c != EOF);
              break;
          case 'u': ;
               do {
                  c=getc(f1);
                  printf("%d",c);
                  if (c==EOF) {
                     break;
                     }
                  else {
                     cres=minamay(c);
                     putc(cres,fres);    
                  }
                 } while (c != EOF);
               printf("El primer parámetros es u\n");
               break;
          default:
               printf("Parámetro no reconocido.");
               break;
          }        
    }
   
    system ("pause");
    /*printf("Programa finalizado. Pulse INTRO para salir");*/
    return 0;
}

No hay comentarios:

Publicar un comentario