所有新聞群組討論區列表 風禹科技驗證有限公司 Web News Reader

目前新聞群組:tw.bbs.comp.oop

項目 內容
發文者 肉腳布
日期 2007/1/3 下午 01:21:53
標題 6.設計一個程式可以做全文搜尋的功能。首先讓使用者輸入一個文字檔案檔?
檔頭
220 24519 <4RlQI0$1Dp@bbs.mgt.ncu.edu.tw> article
Path: netnews!ctu-gate!news.nctu.edu.tw!news.ncu.edu.tw!news.mgt.ncu.edu.tw!bbs
From: brucetsao.bbs@bbs.mgt.ncu.edu.tw (肉腳布)
Newsgroups: tw.bbs.comp.oop
Subject: 6.設計一個程式可以做全文搜尋的功能。首先讓使用者輸入一個文字檔案檔?
Date: 03 Jan 2007 05:21:53 GMT
Organization: 中央資管龍貓資訊天地
Lines: 46
Message-ID: <4RlQI0$1Dp@bbs.mgt.ncu.edu.tw>
NNTP-Posting-Host: bbs.mgt.ncu.edu.tw
Mime-Version: 1.0
Content-Type: text/plain; charset="big5"
Content-Transfer-Encoding: 8bit
X-Trace: news.mgt.ncu.edu.tw 1167801917 53462 140.115.83.240 (3 Jan 2007 05:25:17 GMT)
X-Complaints-To: usenet@news.mgt.ncu.edu.tw
NNTP-Posting-Date: Wed, 3 Jan 2007 05:25:17 +0000 (UTC)
X-Filename: OOP/M.1167801696.A
Xref: netnews tw.bbs.comp.oop:24519
內文
6.      設計一個程式可以做全文搜尋的功能。首先讓使用者輸入一個文字檔案檔名,程式開啟這個文字檔後,再讓使用者輸入欲搜尋的字串,程式就從檔案的開頭開始搜尋
6.      設計一個程式可以做全文搜尋的功能。首先讓使用者輸入一個文字檔案檔名,程式開啟這個文字檔後,再讓使用者輸入欲搜尋的字串,程式就從檔案的開頭開始搜尋這個字串,找到符合的字串時便紀錄一次,最後輸出找到符合字串的個數。
(提示:以一個指標來記錄檔案位置指標,另設一個變數當作字串的指標(事實上不是一個指標,可用一個整數變數來記錄目前字串比較的位置)。使用fseek找尋符合第一個字元相同的位置,接著比較第二個字元、第三個字元……若與欲找尋的字串完全吻合,則用一個變數來累計次數,若比較過程中有不符合的字元,便不再比對,使用fseek將指標移到下一個字元,繼續重複剛剛的比對動作。請觀察下頁的圖解。)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
        char c,filename[20];
        printf("請輸入文字檔檔名:");
        scanf("%s",filename);
        FILE *fp;
        if ((fp=fopen(filename,"r"))==NULL) {
                printf("File can't be opened!\n");
                exit(0);
        }
        printf("文字檔內容如下:\n");
        while((c=fgetc(fp))!=EOF) printf("%c",c);
        fseek(fp,0,SEEK_SET);

        int spos=0, count=0, slen;
        char search[20],cmp[20];

        printf("請輸入欲搜尋的文字:");
        scanf("%s",search);
        slen=strlen(search);
        while(fgets(cmp,slen+1,fp)!=NULL)
        {
                if(!strcmp(cmp,search))
                {
                        count++;
                        spos+=slen;
                }
                else
                        spos++;
                fseek(fp,spos,SEEK_SET);
        }
        printf("%s共出現%d次\n",search,count);
}


--
◎龍貓資訊天地(bbs.mgt.ncu.edu.tw)
◎[brucetsao]From: 140.115.82.88

基本條件

.Net 原始碼 | ASP.NET News Reader Beta 0.2.9

請參閱

個人資料 | 發表新文章 | 回覆 | 回信 | 轉寄 | 同標題 | 搜尋 | 列印 預覽 直接

重要訊息通知

2007/06/21 由於微軟新聞伺服器移除多數新聞群組 (newsgroup),目前遭移除之群組暫時改為隱藏純瀏覽,若狀況已定案時,將會將隱藏中的群組重新調整。[討論]