首页 > 代码库 > WC项目

WC项目

wc是一种计算机指令,用于统计一个文件中的行数、字数、字节数或字符数。不多说,代码如下:

  1 #include <stdlib.h>
  2 #include <string.h>
  3 #include <stdio.h>
  4 #include <ctype.h>
  5 #include <io.h>
  6 
  7 void open_file(int a,int b,int c);
  8 char str1[50];
  9 char sym[100]={,,.,/,!,(,),{,},:,+,-,*,=};
 10 
 11 int main ()
 12 {
 13     char s[100];
 14     gets(s);
 15 
 16     while(1)
 17     {
 18         int s_ch=0,s_word=0,s_line=0;//记录输入的查询数据
 19         int length_s=0;
 20         length_s=strlen(s);
 21         
 22         int i=0;
 23         
 24         for(i=7;i<length_s;++i)
 25         {
 26             if((s[i]==-)&&(s[i+1]==c))
 27             {
 28                 s_ch=1;
 29             }
 30             if((s[i]==-)&&(s[i+1]==w))
 31             {
 32                 s_word=2;
 33             }
 34             if((s[i]==-)&&(s[i+1]==l))
 35             {
 36                 s_line=3;
 37             }
 38             if(s[i]==F)
 39             {
 40                 strncpy(str1,s+i,length_s-i);
 41                 break;
 42             }//获取文件名
 43         }
 44         open_file(s_ch,s_word,s_line);
 45         printf("\n");
 46         
 47         gets(s);
 48     }
 49     
 50     return 0;
 51 }
 52 
 53 void open_file(int a,int b,int c)
 54 {
 55     FILE *fp;
 56     fp=fopen(str1,"r");
 57     if(fp==NULL)
 58     {
 59         printf("the file not found\n");
 60         exit(0);
 61     }//打开地址文件
 62     
 63     int word_N=0,line_N=0,ch_N=0;//记录单词数、行数、字符数
 64     char ch;
 65     while((ch=fgetc(fp))!=EOF)
 66     {
 67         ch_N++;
 68         
 69         int j=0,length_sy=0;//符号表的长度
 70         length_sy=strlen(sym);
 71         char s1[30];//保存单词
 72         
 73         if(isalpha(ch))
 74         {
 75             s1[j++]=ch;
 76             ch=fgetc(fp);
 77             ch_N++;
 78             while(isalpha(ch))
 79             {
 80                 s1[j]=ch;
 81                 j++;
 82                 ch=fgetc(fp);
 83                 ch_N++;
 84             }
 85             word_N++;
 86         }//是字母型的单词
 87         if(isdigit(ch))
 88         {
 89             s1[j++]=ch;
 90             ch=fgetc(fp);
 91             ch_N++;
 92             while(isdigit(ch))
 93             {
 94                 s1[j]=ch;
 95                 j++;
 96                 ch=fgetc(fp);
 97                 ch_N++;
 98             }
 99             word_N++;
100         }
101         if(ch==\n)
102         {
103             line_N++;
104         }//行数
105         while(length_sy--)
106         {
107             if(ch==sym[length_sy])
108             {
109                 word_N++;
110             }
111         }//符号表的单词
112     }
113     if(a!=0)
114         printf("字符数:%d\n",ch_N);
115     if(b!=0)
116         printf("单词数:%d\n",word_N);
117     if(c!=0)
118         printf("总行数:%d\n",line_N+1);
119 }

 

WC项目