martes, 27 de diciembre de 2011

Una Versión Limitada del Comando Unix WC

Este programa es una versión primitiva del comando wc de unix, el cual, entre otras cosas, cuenta las líneas, las palabras y los caracteres de un archivo. El cuadro siguiente muestra el resultado de ejecutar este programa con su mismo código como entrada. También se muestran los resultados que se obtienen con el comando wc.

[hernandez@localhost Programas]$ ./a.out < Programa.c

El numero de lineas es: 42
El numero de palabras es: 171
El numero de caracteres es: 1038

[hernandez@localhost Programas]$ wc Programa.c
  42  171 1038 Programa.c

Éste es el código:
 /* Este programa debe contar el numero de lineas, el numero de caracteres, palabras
    y palabras específicas.*/

 #include<stdio.h>
 #define ADENTRO 1
 #define AFUERA 0

 int main()
 {                 // Abre main
 int Caracteres = 0;
 int Palabras = 0; 
 int Lineas =  0; 
 int estado = AFUERA;
 int c;

 while ((c = getchar()) != EOF)
 /* Un error sutil dificil de detectar ocurre
    cuando se suprimen los parentesis que encierran
    la instruccion c = getchar() */
 {        // abre while
 // aqui se cuentan los caracteres
 Caracteres++;
 // Aqui se cuentan las lineas
 if ( '\n' == c )
 Lineas++;
 
 // Aqui se cuentan las palabras
 if ( (' ' == c) || ('\t' == c) || ('\n' == c) )
 estado = AFUERA;
 else
 if ( AFUERA == estado )
 {  // abre if 
 estado = ADENTRO;
 Palabras++; 
 }  // Cierra if

 }         // Cierra while

 printf("\n\nEl numero de lineas es: %d", Lineas);
 printf("\nEl numero de palabras es: %d", Palabras);
 printf("\nEl numero de caracteres es: %d\n\n", Caracteres);
 
 }                 // Cierra main

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...