用C语言来统计文件中单词的个数
注意:单词以空格为分隔
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
//argc:统计运行程序时命令行参数的个数
//*argv[]:存储每个参数的字符串指针,每一个元素对应一个参数
int main(int argc,char *argv[])
{
int ch,bian = 0,count = 0;
char find[50],temp[100];
FILE *pt; //文件指针
//判断是否输入文件
if (argc != 2)
{
/* code */
printf("请使用格式:%s 文件名",argv[0]);
exit(1); //非正常退出
}
//判断能否成功打开文件
if ((pt = fopen(argv[1],"r"))==NULL) //将argv[1]赋值给指针pt
{
printf("打开文件 %s 失败",argv[1]);
exit(1);
}
printf("请输入要查找的单词:");
gets(find);
while ((ch=getc(pt))!=EOF) //EOF表示文件结束
{
if ((ch != ' ')&&(ch!='\n'))
{
temp[bian] = ch;
bian++;
}
else
{
temp[bian]='\0';
if ((strcmp(find,temp))==0)
{
count++;
}
bian = 0;
}
}
printf("共在文件%s中查到字符串\"%s\"%d个\n",argv[1],find,count);
getch();
return 0;
//system("pause");
}
代码编译好后,打开cmd,首先到自己程序的所在盘(我的程序在D盘),然后 cd 到程序的编译目录(就是程序所在的文件夹),最后输入 程序名 和 文件名 回车运行程序。
我的操作步骤如下:
main函数中参数argc和argv含义及用法
int main(int argc,char *argv[])
1.argc 是 argument count的缩写,表示传入main函数的参数个数;
2.argv 是 argument vector的缩写,表示传入main函数以数组形式保存传递的所有参数,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径。
例如:
我输入的参数是:Test.exe demo.txt,argc = 2,argv[0] = Test.exe, argv[1] = demo.txt
参考资料:用C语言来统计文件中单词的个数