302班

          java突擊隊
          posts - 151, comments - 74, trackbacks - 0, articles - 14
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          計算一段文本的單詞數

          Posted on 2007-07-06 23:49 停留的風 閱讀(445) 評論(0)  編輯  收藏 所屬分類: C語言學習歷程

          為了使得程序更加靈活,我們將不限制用戶輸入的行數。因此,我們需要找到一種方式,用于通知程序用戶已經完成輸入。有一個簡單的方法可以完成這個任務,那就是當用戶輸入最后一行文字以后,再額外加一個空行。當我們使用readLine()函數讀取這個額外的空行時,程序將在用作緩沖區的數組的第一個位置上存儲一個空字符。我們程序可以專門檢查這種特殊的情況,并由此得知用戶已經完成了輸入。
          #include <stdio.h>

          //判斷是否是字母
          bool alphabetic(const char c)
          {
            if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
            {
              return true;
            }
            else
             return false;
          }
          //計算單詞的個數
          int countWords(const char string[])
          {
             int i,wordCount=0;
             bool lookingForWord=true,alphabetic(const char c);

             for(i=0;string[i]!='\0';++i)
             {
               if(alphabetic(string[i]))
            {
              if(lookingForWord)
              {
                wordCount++;
             lookingForWord=false;
              }    
            }
            else
             lookingForWord=true;
             }
             return wordCount;
          }

          //得到一個字符串
          void readLine(char buffer[])
          {
            char character;
            int i=0;
            do
            {
              character=getchar();
           buffer[i]=character;
           ++i;
            }while(character!='\n');

            buffer[i-1]='\0';
          }

          int main(void)
          {
            char text[81];
            int totalWords=0;
            void readLine(char buffer[]);
            bool endOfText=false;

            printf("Type in your text.\n");
            printf("When you are done,press'RETURN'.\n\n");

            while(!endOfText)
            {
              readLine(text);
           if(text[0]=='\0')
           {
               endOfText=true ;
           }
           else
           totalWords+=countWords(text);
            }

            printf("\nThere are %i words in the above text.\n",totalWords);
            return 0;
          }

          測試運行圖:
          主站蜘蛛池模板: 志丹县| 灵山县| 古蔺县| 当雄县| 徐闻县| 广宗县| 南靖县| 南召县| 泾源县| 博客| 文化| 阜新| 延庆县| 湟中县| 临洮县| 顺义区| 嘉义市| 志丹县| 广东省| 安阳市| 徐汇区| 镇雄县| 洞口县| 依兰县| 商洛市| 定远县| 尉犁县| 临海市| 巩留县| 青田县| 罗江县| 基隆市| 巢湖市| 蓝山县| 玛多县| 丰原市| 英吉沙县| 仁化县| 治多县| 洛浦县| 博乐市|