博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.1字符类型统计
阅读量:4677 次
发布时间:2019-06-09

本文共 1701 字,大约阅读时间需要 5 分钟。

Q:终端用键盘输入字符串,以Ctrl+Z组合键表示输入完毕,统计字符串中中空格符、制表符、换行符的个数,并显示统计结果。

思路:

  空格符的ASCII碼是32,制表符的ASCII碼是9,换行符的ASCII碼是10、

  Crtl+Z的组合键输入的字符在计算机中对应的是EOF结束标识符。

 

#include 
#include
int main() { char c; int space=0,table=0,enter=0; printf("input a string:\n"); scanf("%c",&c); while(c!=EOF) { switch(c) { case 32: space++;break; case 9: table++;break; case 10: enter++;break; default: break; } scanf("%c",&c); } printf("the number of space is:\n",space); printf("the number of table is:\n",table); printf("the number of enter is:\n",enter); return 0;}

擦,居然编译不出来,好尴尬……

考虑了好一会儿,终于编译成功。可是有点小问题,如输入的“Crtl+Z”出现在某个字符之后,就打印不出最后结果。what happened ?

#include 
int main(){ int c,m,n,l; m=n=l=0; /* m代表空格个数,n代表制表符个数,l代表换行符个数 */ int flag=0;//表示是否遇到换行符 while((c = getchar()) != EOF) { if(c == '\n') { ++l; flag = 1; continue; } else if(flag == 0) { if(c == ' ') { ++m; } if(c == '\t') { ++n; } } } printf("%d\t%d\t%d",m,n,l); return 0;}

  从网上找了一个程序,也出现了上述的问题,代码如下:

#include
int main(){ int blanks, tabs, newlines; int c; int done = 0; int lastchar = 0; blanks = 0; tabs = 0; newlines = 0; while(done == 0) { c = getchar(); if(c == ' ') ++blanks; if(c == '\t') ++tabs; if(c == '\n') ++newlines; if(c == EOF) { /*if(lastchar != '\n') { ++newlines; }*/ done = 1; } lastchar = c; } printf("Blanks: %d\nTabs: %d\nLines: %d\n", blanks, tabs, newlines); return 0;}

  

转载于:https://www.cnblogs.com/dd2hm/p/6749485.html

你可能感兴趣的文章
【校招面试 之 C/C++】第33题 C++ 11新特性(四)之STL容器
查看>>
Java替代C语言的可能性
查看>>
android ListView中CheckBox错位的解决
查看>>
linux下的mongodb数据库原生操作
查看>>
BNUOJ 1268 PIGS
查看>>
菜鸟的MySQL学习笔记(三)
查看>>
商业选址5A法则
查看>>
POJ 1191 棋盘分割(区间DP)题解
查看>>
文件同步服务器,iis 集群 ,代码同步(一)
查看>>
JS之模板技术(aui / artTemplate)
查看>>
【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】
查看>>
Mysql-2-数据库基础
查看>>
python把源代码打包成.exe文件
查看>>
再也不用担心网吧开黑队友听不清了!降噪解决方案了解一下?
查看>>
PhotoshopCS5中将单位修改成百分比
查看>>
赵雅智:js知识点汇总
查看>>
变形二叉树中节点的最大距离(树的最长路径)——非递归解法
查看>>
cocos2d-x 3.0rc1 编译cpp-testsproject
查看>>
《Java虚拟机原理图解》1.3、class文件里的訪问标志、类索引、父类索引、接口索引集合...
查看>>
三种常见的图像处理双三次插值算法
查看>>