事无巨细,代码亦然
来源:互联网 发布:像素大厨 mac怎么安装 编辑:程序博客网 时间:2024/05/16 12:39
事无巨细,代码亦然
重读C++Primer(第四版,李师贤等译),做第六章的习题6.9。侯捷先生出了C++Primer3rd的习题集,于是对照看看。惭愧至极,事无巨细尤其是代码,大家编程,极小的细节如命名,输出等都考虑等令人惊叹。并且jjhou在习题6.9中体现出的及其严密的逻辑也是让我…
于是,将习题6.9的代码贴出来(jjhou),程序在vc6.0中编译通过。
习题6.9:修改元音统计程序使其可以统计以下双字符序列出现的次数:ff、fl以及fi
完整代码:
#include<iostream>
#include<cctype>
using namespace std;
int main()
{
char ch;
int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0,
blankCnt = 0, tabCnt = 0, newlineCnt = 0,
ffCnt = 0, flCnt = 0, fiCnt = 0,
consonantCnt = 0;
while( cin.get(ch) )
{
switch( ch )
{
case 'a': case 'A':
++aCnt;
break;
case 'e': case 'E':
++eCnt;
break;
case 'i': case 'I':
++iCnt;
break;
case 'o': case 'O':
++oCnt;
break;
case 'u': case 'U':
++uCnt;
break;
case ' ':
++blankCnt;
break;
case '/t':
++tabCnt;
break;
case '/n':
++newlineCnt;
break;
case 'f':
++consonantCnt;
cin.get(ch);
switch(ch)
{
case 'f':
++consonantCnt;
++ffCnt;
break;
case 'l':
++consonantCnt;
++flCnt;
break;
case 'i':
++iCnt;
++fiCnt;
break;
default:
cin.putback(ch);
break;
}
break;
default:
if( isalpha(ch) )
++consonantCnt;
break;
}
}
cout << "vowel a:" << aCnt << endl
<< "vowel e:" << eCnt << endl
<< "vowel i:" << iCnt << endl
<< "vowel o:" << oCnt << endl
<< "vowel u:" << uCnt << endl
<< "consonant:" << consonantCnt << endl
<< "ff:" << ffCnt << endl
<< "fl:" << flCnt << endl
<< "fi:" << fiCnt << endl
<< "blan:" << blankCnt << endl
<< "tab:" << tabCnt << endl
<< "newline:" << newlineCnt << endl;
return 0;
}
- 事无巨细,代码亦然
- 事无巨细---程序开发面面观
- 事无巨细 不服输
- 事无巨细,时钟芯片DS1302
- 使用strace查看shell内置命令的系统调用(sudo亦然)
- 为什么Android总是事无巨细地告诉你应用索取的每一项权限?
- 允许int*到void*的转换,反之不亦然:无效的转换invalid conversion from `void*' to `int*'
- 盖茨想到要招聘一位工作热心、事无巨细的总管式女秘书,这样可以使他减少许多不必要的分心
- 代码
- 代码!
- 代码
- 代码
- 代码
- 代码
- 代码
- 代码
- 代码
- 代码
- VMWARE 网络分析
- 开发工具
- Oracle Synonym
- create sequence
- 提高Java性能的几个高效用法
- 事无巨细,代码亦然
- 各种排序算法小结
- 表单元素:40个CSS/JS风格和功能技术处理
- 如何虚拟网卡
- 也谈.net下面的new、virtual和override(一)
- Linux on Power 上的调试工具和技术(转载)
- GridView RowCommand事件操作Demo Code
- 步入J2EE架构和过程基础教程
- 各位,帮帮忙看一下