C语言实现wc项目
2024-08-29 15:34:32
该World Count项目用的是C语言编写,只实现了-c、-w、-l、三个功能,由于简单全部代码均由小编自己编写,用的是VS2013只支持windows平台cmd运行。
木有图形界面,参考了Linux系统中的操作方式,即除了可以直接运行.exe程序外,还可以在cmd下输入如:wc.exe [file] -c的带参数方式通过main函数的参数接收来运行。
功能:
1.直接运行,提示输入文件路径,显示三个功能即字符、单词、行数。
2.在cmd下输入,如果参数只有两个则要提示用户需要的功能(-c、-w、-l),若是三个参数则通过strcmp()判断中间的字符来显示相应的功能。
不足之处:
拓展功能还未实现,一味的自己打代码,未有效的利用资源,参考已有的代码。
项目源码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main(int argc, char * argv[])
{
int wc_char = ;
int wc_word = ;
int wc_line = ;
char filename[];
FILE *fp = NULL;
if (argc == )
{
printf("missing file name:\nPlease input file name:");
gets(filename);
fp = fopen(filename, "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
printf("This is the file :\n");
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
putchar(ch);
wc_char++;
}
else if (ch == ' ')
{
putchar(ch);
wc_word++;
}
else if (ch == '\n')
{
putchar(ch);
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
printf("The char count is %d\n", wc_char);
printf("The word count is %d\n", wc_word);
printf("The line count is %d\n", wc_line);
fclose(fp);
_getch();
exit();
}
else if (argc == )
{
fp = fopen(argv[], "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
wc_char++;
}
else if (ch == ' ')
{
wc_word++;
}
else if (ch == '\n')
{
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
printf("文件打成功!\n请输入统计方式如(-c\-w\-l):");
gets(filename);
if (strcmp(filename, "-c") == )
{
printf("The char count is %d\n", wc_char);
}
else if (strcmp(filename, "-w") == )
{
printf("The word count is %d\n", wc_word);
}
else if (strcmp(filename, "-l") == )
{
printf("The line count is %d\n", wc_line);
}
}
else if (argc == )
{
fp = fopen(argv[], "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
wc_char++;
}
else if (ch == ' ')
{
wc_word++;
}
else if (ch == '\n')
{
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
if (strcmp(argv[],"-c")==)
{
printf("The char count is %d\n", wc_char);
}
else if (strcmp(argv[],"-w")==)
{
printf("The word count is %d\n", wc_word);
}
else if (strcmp(argv[],"-l")==)
{
printf("The line count is %d\n", wc_line);
}
fclose(fp);
}
}
本项目源代码上传至个人的GitHub:https://github.com/BelieveMyself-ZLH/wc
最新文章
- Java的四种内部类
- IOS 设置导航栏
- Atitit atiuse软件系列
- db2实例、数据库、表空间
- Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
- Struts2 实战(一)
- I/O流的学习
- 分享:根据svg节点对象类型和路径值转换坐标值
- 对vpn的认识
- 【剑指offer】面试题44:扑克牌的顺子
- Nginx访问限速配置方法详解
- PHP入门怎么选?大学生适合学习吗?
- css文字超出一行用点表示
- MySQL基础知识-安装MySQL
- weex 学习: 添加图标(使用阿里吧吧-icon)
- 用python一步一步教你玩微信小程序【跳一跳】
- Vue下载页面显示内容
- Python入门-用户登录程序升级版
- MyEclipse 10 + OsChina GIt项目托管
- 廖雪峰Java5集合-2List-2编写equals方法
热门文章
- 双向链表(C++实现)
- The Quantum L3 router and floating IPs
- js 处理移动端触摸事件
- JQuery表单验证插件EasyValidator
- codeforces 631C C. Report
- Agc012_E Camel and Oases
- javascript获取窗口位置、绝对位置、事件位置等
- LuoguP4383 [八省联考2018]林克卡特树lct
- 白话算法(6) 散列表(Hash Table)从理论到实用(上)
- Maven(2)-坐标和依赖