字串處理

2021-07-12 00:19:21 字數 2157 閱讀 6156

一.實驗目的

熟悉並掌握字串的處理技術,熟悉並掌握文字檔案的操作技術,進而對一般的文字處理軟體的設計方法有所了解。

二.實驗題目

1.統計一篇英文**中單詞的個數。

2.語言文字研究人員常常需要對某些詞彙的使用頻率進行統計。試幫助他們設計乙個程式,統計某篇英文**中某些詞彙的出現次數和位置。設英文**已存於乙個文字檔案中,待統計的詞匯集要一次輸入完畢,即統計工作應在程式的一次執行之後全部完成。程式的輸出結果是每個詞的出現次數以及出現位置所在行的行號。

說明:英文**必須儲存在檔案或資料庫中。

三.實現提示

1.出現位置所在行的行號可以用鍊錶儲存。若某詞在某行中出現了不止一次,不必存多個相同的行號。

2.待統計詞彙可以完全由小寫字母組成,但文字檔案中或許存在大寫字母,程式應能夠識別並予以正確統計。

3. 下表中列出的用於檔案操作的c標準函式可以在程式中呼叫。

識別符號型別

功  能

fopen

函式用於開啟乙個外部檔案

fgetc

函式從外部檔案讀取乙個字元

fclose

函式用於關閉乙個檔案

eof變數

用於判斷檔案是否結束

其中,fopen的呼叫方式為 fp=fopen(filename,"r")),filename指定要開啟的外部檔名,它是乙個字串型別的常量,「r」指定檔案的開啟方式為唯讀開啟。返回值fp為乙個file* 型別的指標,指向被開啟的檔案。fgetc的呼叫方式為c=fgetc(fp),c為讀取得字元。

下面是乙個程式片斷,該程式的功能是顯示上文字檔案readme.txt的內容。

if((fp=fopen(「readme.txt」,"r"))==null)

c=fgetc(fp);

while(c!=eof)//文字沒結束

/*

1.統計英文單詞的數量

2.統計單詞出現的次數和出現的位置

a.可以用鍊錶儲存出現的位置,如果同一行出現很多單詞,可以不用儲存多個行號

b.檔案中字母大小寫應該進行識別,即不區分大小寫

*/#include #include #include "string.h"

#include typedef struct _statestate;

typedef struct _link // 定義該鍊錶是為了儲存不重複出現的單詞

link;

int main(int argc, _tchar* argv)

else

*/if ((c>='a'&&c<='z')||(c>='a'&&c<='z')||(c=='\''))

word[pos++]=c;

} //pos>0解決了可能存在多個空格的情況" "

else if (pos>0)

p->next=state;

//單詞數++

ptmp->num++;

break;

} ptmp = ptmp->next;

} // 如果鍊錶中沒有當前單詞,在鍊錶末尾插入節點

if (ptmp == null)

else // 此處為第一次出現單詞的時候

head = pnow = ptmp;

} pos=0;

} if(c=='\n')

} fclose(fp); // 對檔案進行操作,關閉檔案

// 讀取鍊錶,輸出單詞及其出現的個數

ptmp = head;

file *fp1 = fopen("text3_result.txt","w");

while (ptmp)

fprintf(fp1,"\n");

ptmp = ptmp->next;

} fclose(fp1);

return 0;

}

字串處理 字串反轉

請原諒博主今天很閒,於是乎博主又開始更新微博了。這次要更新的問題是 編寫乙個函式,反轉乙個單詞的順序。例如 do or do not,there is no try.就要反轉成 try.no is there not,do or do 大家要認真看看這道題,這道題和大家想象的貌似有點不同。首先字串反...

字串處理

uncode與ansi字串轉換 我們使用windows函式multibytetowidechar將多位元組字串轉換成寬字元字串。函式如下 int multibytetowidechar uintcodepage dworddwflags lpcstrlpmultibytestr intcbmulti...

字串處理

byte array new byte 2 array system.text.encoding.default.getbytes 啊 int i1 short array 0 0 int i2 short array 1 0 unicode解碼方式下的漢字碼 array system.text.e...