C程序设计语言第二版No。002第二个C程序练习
本题根据C程序设计语言第二版中第一章第一节的统计输入当中的单词数、字符数、行数等信息的用例和相关习题揉合而来。本文是尽量模仿参考UNIX中的WC命令,但对数字的检测以及标点符号的处理是弱化的,后续版本再考虑解决此问题。同时由于原文采用的是交互输入,考虑到调试程序的方便且尽量模仿WC命令所以直接在程序中指定文本文件打开。主要是用来练习:
1。如何统计给定的文本文件中的各项信息:如行数、回车换行符、空白字符数、单词数、标点符号数等;
2。文件指针;
3。文件流的操作;
4。ambition。txt可以进行替换为其他文本文件名;
5。数字暂时作为单词处理;
题目:根据给定的文本文件统计文件的各项信息:如行数、回车换行符、空白字符数、单词数、标点符号数等。(因为还未练习命令行带参,所以用程序内指定文件解决。)intartwc(void){FILEfp;charch;intstate,na,nl,nb,nc,nw,np;statenanlncnbnwnp0;na所有字符、nl换行回车符、nb空白字符含空格、nw单词数、nc英文字符数、np标点符号、state单词状态检查if((fpfopen(ambition。txt,r))NULL)printf(ERROR:openingfilefailed!);elsewhile((chfgetc(fp))!EOF){na;if(chchr)nl;if(chchchchr){nb;if(stateIN){printf();stateOUT;}}elseif(ch!ch,ch。ch?ch;)np;elseif((chachz)(chAchZ)(ch)(ch)((ch0)(ch9))){nc;if(stateOUT)nw;stateIN;putchar(ch);}}fclose(fp);printf(当前文件共有d行、d个字符、d个空白字符、d个英文字符数、d个标点符号、d个单词,nl,na,nb,nc,np,nw);return0;}
编译环境:GCCforwindowsV3。3。1
运行结果如下: