事无巨细,代码亦然

来源:互联网 发布:像素大厨 mac怎么安装 编辑:程序博客网 时间:2024/05/16 12:39

事无巨细,代码亦然

重读C++Primer(第四版,李师贤等译),做第六章的习题6.9。侯捷先生出了C++Primer3rd的习题集,于是对照看看。惭愧至极,事无巨细尤其是代码,大家编程,极小的细节如命名,输出等都考虑等令人惊叹。并且jjhou在习题6.9中体现出的及其严密的逻辑也是让我

于是,将习题6.9的代码贴出来(jjhou),程序在vc6.0中编译通过。

 

习题6.9:修改元音统计程序使其可以统计以下双字符序列出现的次数:fffl以及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;

}

原创粉丝点击