Write a program to implement following UNIX commands.
- wc -c <filename> displays number of characters for the given file.
- wc -w <filename> display number of words for given file.
- wc -l <filename> display number of line for given file.
Program:
#include <stdio.h> #include <stdlib.h> #include <string.h> void main(){ setbuf(stdout,NULL); FILE *fp; char s[80],a[5],c[5],temp[100],f[50],p[50],ch; int n; while(1){ printf("\nAP:>"); gets(s); if(strcmp(s,"exit")==0){ exit(0); } sscanf(s,"%s%s%s",&c,&a,&f); fp=fopen(f,"r"); if(strcmp(c,"wc")!=0){ printf("Invalid Command."); }else if(fp==NULL){ printf("File cannot be found."); }else if(strcmp(a,"-c")==0){ n=0; while(!feof(fp)){ ch = fgetc(fp); n++; } printf("\nNumber of character present in file:%d",n); }else if(strcmp(a,"-l")==0){ n=0; while(!feof(fp)){ ch=fgetc(fp); if(ch==' ' || ch=='\n'){ n++; } } printf("\nNumber of words present in file:%d",n); }else if(strcmp(a,"-l")==0){ n=0; while(!feof(fp)){ ch=fgetc(fp); if(ch=='\n'){ n++; } } printf("\nNumber of lines present in file:%d",n); } } }
Comments
Post a Comment