前言:
此刻朋友们对“c语言程序设计第二版课后题答案解析”都比较讲究,咱们都需要剖析一些“c语言程序设计第二版课后题答案解析”的相关知识。那么小编在网上收集了一些有关“c语言程序设计第二版课后题答案解析””的相关内容,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!本题根据C程序设计语言第二版中第一章第一节的统计输入当中的单词数、字符数、行数等信息的用例和相关习题揉合而来。本文是尽量模仿参考UNIX中的WC命令,但对数字的检测以及标点符号的处理是弱化的,后续版本再考虑解决此问题。同时由于原文采用的是交互输入,考虑到调试程序的方便且尽量模仿WC命令所以直接在程序中指定文本文件打开。主要是用来练习:
1. 如何统计给定的文本文件中的各项信息:如行数、回车换行符、空白字符数、单词数、标点符号数等;
2. 文件指针;
3. 文件流的操作;
4. ambition.txt可以进行替换为其他文本文件名;
5. 数字暂时作为单词处理;
题目:根据给定的文本文件统计文件的各项信息:如行数、回车换行符、空白字符数、单词数、标点符号数等。(因为还未练习命令行带参,所以用程序内指定文件解决。)
int artwc(void){ FILE *fp; char ch; int state,na,nl,nb,nc,nw,np; state=na=nl=nc=nb=nw=np=0;//na所有字符、nl换行回车符、nb空白字符含空格、nw单词数、nc英文字符数、np标点符号、state单词状态检查 if((fp=fopen("ambition.txt","r"))==NULL)printf("ERROR:opening file failed!\n"); else while((ch=fgetc(fp))!=EOF){ na++; if(ch=='\n'||ch=='\r')nl++; if(ch==' '||ch=='\n'||ch=='\t'||ch=='\r'){ nb++; if(state==IN){printf("\n");state=OUT;} } else if(ch=='!'||ch==','||ch=='.'||ch=='?'||ch==';')np++; else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch=='\'')||(ch=='-')||((ch>='0')&&(ch<='9'))){ nc++; if(state==OUT)nw++; state=IN; putchar(ch); } } fclose(fp); printf("当前文件共有%d行、%d个字符、%d个空白字符、%d个英文字符数、%d个标点符号、%d个单词\n",nl,na,nb,nc,np,nw); return 0;}
编译环境:GCC for windows V 3.3.1
运行结果如下:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言程序设计第二版课后题答案解析