C语言实现wc项目

  该World Count项目用的是C语言编写,只实现了-c、-w、-l、三个功能,由于简单全部代码均由小编自己编写,用的是VS2013只支持windows平台cmd运行。

  木有图形界面,参考了Linux系统中的操作方式,即除了可以直接运行.exe程序外,还可以在cmd下输入如:wc.exe [file] -c的带参数方式通过main函数的参数接收来运行。

  功能

  1.直接运行,提示输入文件路径,显示三个功能即字符、单词、行数。

  2.在cmd下输入,如果参数只有两个则要提示用户需要的功能(-c、-w、-l),若是三个参数则通过strcmp()判断中间的字符来显示相应的功能。

  不足之处:

    拓展功能还未实现,一味的自己打代码,未有效的利用资源,参考已有的代码。

  项目源码:

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <conio.h>
  4 #include <string.h>
  5 int main(int argc, char * argv[])
  6 {
  7     int wc_char = 0;
  8     int wc_word = 1;
  9     int wc_line = 1;
 10     char filename[80];
 11     FILE *fp = NULL;
 12     if (argc == 1)
 13     {
 14         printf("missing file name:\nPlease input file name:");
 15         gets(filename);
 16         fp = fopen(filename, "r");
 17         if (fp == NULL)
 18         {
 19             printf("打开有误!\n");
 20             printf("请按enter键继续....");
 21             _getch();
 22             exit(0);
 23             //...
 24         }
 25         printf("This is the file :\n");
 26         while (1)
 27         {
 28             char ch;
 29             ch = fgetc(fp);
 30             if (ch >= ‘A‘&&ch <= ‘z‘)
 31             {
 32                 putchar(ch);
 33                 wc_char++;
 34             }
 35             else if (ch == ‘ ‘)
 36             {
 37                 putchar(ch);
 38                 wc_word++;
 39             }
 40             else if (ch == ‘\n‘)
 41             {
 42                 putchar(ch);
 43                 wc_word++;
 44                 wc_line++;
 45             }
 46             else if (ch = EOF)
 47             {
 48                 break;
 49             }
 50         }
 51         printf("The char count is %d\n", wc_char);
 52         printf("The word count is %d\n", wc_word);
 53         printf("The line count is %d\n", wc_line);
 54         fclose(fp);
 55         _getch();
 56         exit(0);
 57     }
 58     else if (argc == 2)
 59     {
 60         fp = fopen(argv[1], "r");
 61         if (fp == NULL)
 62         {
 63             printf("打开有误!\n");
 64             printf("请按enter键继续....");
 65             _getch();
 66             exit(0);
 67             //...
 68         }
 69         while (1)
 70         {
 71             char ch;
 72             ch = fgetc(fp);
 73             if (ch >= ‘A‘&&ch <= ‘z‘)
 74             {
 75                 wc_char++;
 76             }
 77             else if (ch == ‘ ‘)
 78             {
 79                 wc_word++;
 80             }
 81             else if (ch == ‘\n‘)
 82             {
 83                 wc_word++;
 84                 wc_line++;
 85             }
 86             else if (ch = EOF)
 87             {
 88                 break;
 89             }
 90         }
 91         printf("文件打成功!\n请输入统计方式如(-c\-w\-l):");
 92         gets(filename);
 93         if (strcmp(filename, "-c") == 0)
 94         {
 95             printf("The char count is %d\n", wc_char);
 96         }
 97         else if (strcmp(filename, "-w") == 0)
 98         {
 99             printf("The word count is %d\n", wc_word);
100         }
101         else if (strcmp(filename, "-l") == 0)
102         {
103             printf("The line count is %d\n", wc_line);
104         }
105     }
106     else if (argc == 3)
107     {
108         fp = fopen(argv[2], "r");
109         if (fp == NULL)
110         {
111             printf("打开有误!\n");
112             printf("请按enter键继续....");
113             _getch();
114             exit(0);
115             //...
116         }
117         while (1)
118         {
119             char ch;
120             ch = fgetc(fp);
121             if (ch >= ‘A‘&&ch <= ‘z‘)
122             {
123                 wc_char++;
124             }
125             else if (ch == ‘ ‘)
126             {
127                 wc_word++;
128             }
129             else if (ch == ‘\n‘)
130             {
131                 wc_word++;
132                 wc_line++;
133             }
134             else if (ch = EOF)
135             {
136                 break;
137             }
138         }
139         if (strcmp(argv[1],"-c")==0)
140         {
141             printf("The char count is %d\n", wc_char);
142         }
143         else if (strcmp(argv[1],"-w")==0)
144         {
145             printf("The word count is %d\n", wc_word);
146         }
147         else if (strcmp(argv[1],"-l")==0)
148         {
149             printf("The line count is %d\n", wc_line);
150         }
151         fclose(fp);
152     }
153 }

  本项目源代码上传至个人的GitHub:https://github.com/BelieveMyself-ZLH/wc

时间: 2024-10-30 16:31:46

C语言实现wc项目的相关文章

C语言零基础项目驱动式学习第四天

//类型修饰符  数组名[数组元素个数] = {初始化}; //定义数组的时候[]中必须是常量表达式, 不可以是变量; /* int age[5] = {21, 18, 25, 20, 18}; int array[10] = {0};//代表数组中有10个元素, 每个都是0; int array1[8] = {1};//代表数组中有8个元素,第一个是1,其余的为0; int age2[2 + 3] = {0}; */ //定义数组和使用数组的最大区别是, 前面是否有类型修饰符 //使用数组元素

C语言零基础项目驱动式学习第二天

//BOOL 类型是一种非真即假的数据类型,取值只有YES和NO, //BOOL 其实是OC中得数据类型,在C语言中,认为非0即为真. //BOOL 类型规定的存储空间为一个字节. //    BOOL a = YES; //    BOOL b = NO; //    printf("a = %d, b = %d\n", a, b); //    int a = 15, b = 18; //    BOOL c = a > b; //    printf("c = %

C语言零基础项目驱动式学习第三天

一 while循环二do   while循环三 for循环for循环的执行顺序用如下表达式: for(expression1;expression2;expression3)        循环变量初值; 循环条件; 循环变量增量  {                expression4; }       执行的顺序应该是: 1)第一次循环,即初始化循环.      首先执行表达式expression1(一般为初始化语句):再执行expression2(一般为条件判断语句),判断express

C语言零基础项目驱动式学习第一天

引言: 智能手机(Smart Phone)是一种运算能力及功能比传统手机更强的手机.目前的操作系统基本上有以下几种: 1. Symbian Os 众所周知塞班隶属于NOKIA,Symbian开发之初的目标是保证在较低资源的设备上能长时间的运行,这导致了塞班的应用程序开发有着较为陡峭的学习路线,开发成本高,但是程序的运行的效率很高> 2.Android 开源, 联盟,Android凝聚了几乎遍布全球的力量,这是Android形象及声音能够被传到全球移动互联网市场每一个角落的根本原因.不过, 1).

软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数与程序交互,需实现的功能如下: 1.基本功能 支持 -c 统计文件字符数支持 -w 统计文件单词数支持 -l 统计文件总行数 2.拓展功能 支持 -a 返回高级选项(代码行 空行 注释行)支持 -s 递归处理符合条件的文件 3.高级功能 支持 -x 程序以图形界面与用户交互 [filename] 是

WinForm多语言版本实战项目演练

一.课程介绍 关于如何实现"WinForm多语言版本"网上有很多实现技术方案,可以说是"琳琅满目","包罗万象".俗话说的好:一千个读者就有一千个哈姆雷特!如果您工作中恰好也遇到这种开发需求,但是为了一个自上手简单.维护方便.扩展性强的WinForm多语言版本技术方案而感到烦恼的话,那么很高兴恭喜你看到了阿笨的本次分享课程:阿笨结合的是自己在实际工作中遇到真实项目案例,特别的总结并且分享出来给大家,从而避免重复造轮子这种事情. 如果您对本次分享&

作业三:WC项目

WC一个简单的文件检测系统 用c语言实现 不多说 上代码 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <io.h> 4 #include <string.h> 5 void jichu(FILE *fp1){ 6 int characters,lines,words,space,state; 7 characters=words=state=space=0; 8 lines=0; 9 char c;

java实现WC项目

个人项目:WC   wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数. GitHub地址:https://github.com/lllhhhyyy/mygit 基本功能列表 -c    [文件名]  返回文件的字符数(实现) -w   [文件名]  返回文件词的数目(实现) -l     [文件名]  返回文件的行数(实现) 扩展功能列表 -s   递归处

C语言实现wc.exe

前言 Github地址:https://github.com/starmiku/xiangmu_wc 编程语言:C 项目简介 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数. 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 基本功能列表: wc.exe -c file.c //返回文件