如何计算换行符、空格与制表符的个数(以及为何不能用此法来算单词数)
来源:互联网 发布:淘宝订购的应用 编辑:程序博客网 时间:2024/05/21 12:48
计算个数
我在如何计算的过程中总会输出一些莫名其妙的数字,后来才知道是因为换行符的关系,因此需要一个类似下面flag 的标志来判断是否由换行(以及continue的使用)。
代码如下:
1 #include <stdio.h> 2 3 int main() 4 { 5 int c,m,n,l; 6 m=n=l=0; 7 /* m代表空格个数,n代表制表符个数,l代表换行符个数 */ 8 int flag=0;//表示是否遇到换行符 9 while((c = getchar()) != EOF)10 {11 if(c == '\n')12 {13 ++l;14 flag = 1;15 continue;16 }17 else if(flag == 0)18 {19 if(c == ' ')20 {21 ++m;22 }23 if(c == '\t')24 {25 ++n;26 }27 } flag = 0; //这句不能少28 }29 printf("%d %d %d",m,n,l);30 31 return 0;32 }
计算单词问题
用这个方法可以算出换行符、空格与制表符的个数,但是如果单词之间有多个空格或者有多个换行就不行。
因此我还试过用标志变量来判断一个空格或换行之后还是不是空格或换行,在codeblocks上正常运行,但是把作业交上去就会少一,我一开始认为是系统问题或者是输入EOF的方式不同,所以我直接在数字上加一,结果发现还是不能,在随机检测那里又会变回正常状态,所以我觉得应该是作业里面EOF的输入都不一样,所以这个方法就放弃了
之后被室友cyx一提醒,就想起可以通过判断ch是否在97-122内来确定是不是单词,同样用标志变量来判断单词是否已经结束(即后面是否会小于97或大于122),这个方法就简便很多。结果也正确。
(
做此题时还出现的其他问题,
①出现一竖行的空格。解决:判断这一竖行的是不是等于0即将else换成else if(a[i] != 0)
②缺少a的、字母与星号不对应的。解决:是因为前面的循环的初始值错误,或者在用ascii码变换输出字符时97写成96
)
以上皆为个人观点,如有意见,欢迎讨论。
0 0
- 如何计算换行符、空格与制表符的个数(以及为何不能用此法来算单词数)
- 统计程序中空格,制表符,换行符的个数
- 编写一个统计空格,制表符与换行符个数的程序。
- 编写一个统计空格制表符与换行符个数的函数
- [C] 编写一个统计空格、制表符与换行符个数的程序1-8
- 练习 1- 8 编写一个统计空格,制表符与换行符个数的程序
- 练习1-8 编写一个统计空格、制表符与换行符个数的程序
- C语言程序设计习题 1-8 编写一个统计空格,制表符与换行符个数的程序
- 求输入的单词个数(单词间用空格隔开 不限空格个数) 首尾不能用空格
- 替换空格、换行符、制表符、英文的“.”
- 编写一个统计空格、制表符和换行符个数的程序
- 统计字符行数空格换行制表符个数
- 统计空格、制表符和换行符以及ff,fl,fi
- 统计换行符,空格,制表符
- 怎样去除中文中的空格换行以及制表符
- 计算单词的个数
- 计算单词的个数
- 计算单词的个数
- 背包问题
- 谁数学好,谁就是下一个编程大师!
- 杭电2028
- 最新微信暴利赚钱项目,微信充值附近聊天交友源码,内置机器人自动交流 带视频教程
- POJ 3170 线段树优化DP
- 如何计算换行符、空格与制表符的个数(以及为何不能用此法来算单词数)
- Struts2实现第一个简单拦截器
- oracle 11g client 和 PL/SQL developer的安装和配置
- 活动安排问题
- Problem 39 Integer right triangles (数学)
- VC6.0打开或者添加工程文件崩溃的解决方法
- 线程实现cp-r与ls-l
- HDU-1879-继续畅通工程
- 知识体系