• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ivy-jie

            progress ...

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              9 Posts :: 41 Stories :: 6 Comments :: 0 Trackbacks

            #include <stdio.h>
            #include <stdlib.h>
            #include <string.h>
            #include <iostream.h>  //for cout
            #include <ctype.h>//使用字符函數(shù)
            //isalpha(ch),islower(ch),isdigital(ch)
            //從一個(gè)文件中取出字符串與另一個(gè)文件比較,計(jì)算字符串在該文件中出現(xiàn)的次數(shù)
            //(字符串包含匹配性驗(yàn)證,比如?代表小寫英文字母,*代表小寫英文字母和0-9的數(shù)字),
            //第一問要求你用程序?qū)崿F(xiàn)該題目,第二問要求你對(duì)第一問中的程序?qū)憸y(cè)試用例,包括基本
            //測(cè)試、邊界測(cè)試,*代表小寫英文字母和0-9的數(shù)字
            bool equal(char a,char b)
            {
              if(a==b) return true;
              if(a == '?' && b == '*' || a=='*' && b=='?')
               return true;
              if((a=='?' && b>=97 && b<=122) || (a>=97 && a<=123 && b=='?'))
               return true;
              if((a=='*' && b>=97 && b<=122) || (a>=97 && a<=122 && b=='*') || (a=='*' && b>=48 &&b<=57) || (a>=48 && a<=57 && b=='*'))
               return true;
              return false;
            }
            int main(int argc,char** argv)
            {
              char line[30];
              FILE *fp;
              int i=0,j=0;
              if((fp = fopen(argv[1],"r")) != NULL)
              {
               if(fgets(line,100,fp)== NULL)//實(shí)際上取29個(gè)字符,最后加'\0'
               {
                printf("fgets error\n");
               }
               fclose(fp);
              }
             
               int length = strlen(line);
               int sum = 0;//次數(shù)初始為0
               char ch;
               if(fopen(argv[2],"r") != NULL)
               //在文件2中查找字符串,并計(jì)數(shù)
               {
                 while((ch = fgetc(fp))!= EOF)
              {
                int test;
                   test = ftell(fp);
                printf("file pointer value:%d\n",test);
                if(equal(ch,line[j]))
                {
                 j++;
                 if(j == length) //字符串匹配到尾部,成功,總數(shù)加1
                 {
                  sum+=1;
                  j =0;
                 }
                }

                else           //否則的話回溯,重新匹配
                {
                 i= ftell(fp);
                 fseek(fp,j,1);//向前回溯一個(gè)字符
                 j= 0;
                }
             }
               }
                printf("string %s occurs %d times in file2\n",line,sum);
                return sum;
            }
            /*邊界測(cè)試
            設(shè)計(jì)測(cè)試用例時(shí)要考慮邊界輸入和非法輸入,這里統(tǒng)稱為特殊輸入,程序

            員在編寫代碼時(shí)也要考慮特殊輸入,要為特殊輸入編寫處理代碼。在實(shí)際工作中,程序員沒有考慮到某些

            特殊輸入是很常見的,這也是程序錯(cuò)誤的一個(gè)重要來源。
            */

            posted on 2009-05-23 10:45 ivy-jie 閱讀(723) 評(píng)論(0)  編輯 收藏 引用 所屬分類: MFC
            奇米影视7777久久精品人人爽 | 欧美与黑人午夜性猛交久久久| 久久夜色精品国产亚洲| 久久精品不卡| 久久99久久成人免费播放| 国产精品免费久久久久久久久 | 久久精品国产精品亚洲精品| 久久国产免费| 婷婷久久综合九色综合绿巨人| 国产三级观看久久| 久久精品无码一区二区日韩AV| 99久久精品这里只有精品 | 久久精品国内一区二区三区| 国产精品久久一区二区三区| 狠狠色婷婷综合天天久久丁香| 久久久久国产精品| 成人a毛片久久免费播放| 久久精品这里只有精99品| 色综合久久夜色精品国产| 99精品国产综合久久久久五月天| 无码日韩人妻精品久久蜜桃| 99久久婷婷国产综合亚洲| 国产成人综合久久精品尤物| 久久影院亚洲一区| 久久这里只有精品18| 国产福利电影一区二区三区久久老子无码午夜伦不| 久久国产精品久久精品国产| 久久精品无码一区二区三区日韩| 亚洲精品第一综合99久久 | 99久久夜色精品国产网站| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 亚洲精品NV久久久久久久久久 | 香蕉久久夜色精品国产小说| 成人a毛片久久免费播放| 一本色道久久88综合日韩精品| 欧美噜噜久久久XXX| 久久免费99精品国产自在现线| 久久综合狠狠综合久久| 日韩久久无码免费毛片软件| 久久亚洲私人国产精品vA| 久久久久国产精品麻豆AR影院|