資源簡介
用c++編寫的程序。問題描述:輸入關鍵字,在指定的一個(或多個)文本文件中查找關鍵字。若文本中有關鍵字的內容,顯示其位置(說明:未附要進行檢索的txt文件)。
代碼片段和文件信息
#include?
#include
#include
#include
#define?MAX?3000?//文章字符長度的上限
#define?NUM?5????//最大的文件輸入個數
using?namespace?std;?
//----------------------------
//------定義串----------------
typedef?struct
{char?ch[MAX];
int?len;
}SqString;
SqString?s[NUM]t;
//----------------------------
char?file[NUM][32];
int?main()
{
//--------函數聲明------------
void?enterkey();//輸入關鍵字
void?files();//指出搜索范圍
void?Isearch(SqString?[]SqString);//開始搜索
//----------------------------
//------串長度的初始化--------
s[0].len=-1;
t.len=-1;
//----------------------------
char?choice;
?while(choice!=‘Q‘||choice!=‘q‘)
?{?
??cout< ??<<“F----指出搜索范圍\n“?
??<<“S----開始搜索\n“
??<<“Q----退出\n“?
??<<“注1:搜索區分大小寫\n“
??<<“注2:搜索出的內容用“<<‘\“‘<<“[]“<<‘\“‘<<“標出\n“
??<<“注3:支持泛匹配搜索“<<‘\“‘<<“?“<<‘\“‘<<“表示任意字符\n\n“
??<<“輸入您的選擇:“;?
??cin>>choice;
??//----------------------------
????????//防止未輸入關鍵字和指出搜索范圍就調用搜索函數
??if(choice==‘S‘||choice==‘s‘)
??{if(s[0].len==-1||t.len==-1)
???while((choice==‘S‘||choice==‘s‘))
???{cout< ????< ????cin>>choice;
???}
??}
??//----------------------------
??switch(choice)
??{?
??case?‘I‘:?enterkey();?break;
??case?‘i‘:?enterkey();?break;
??case?‘F‘:?files();?break;
??case?‘f‘:?files();?break;
??case?‘S‘:?Isearch(st);?break;?
??case?‘s‘:?Isearch(st);?break;
??case?‘Q‘:?return?0;?
??case?‘q‘:?return?0;?//選擇的字母大小寫兼容
??default:?cout< ??}
?}
return?0;
}
void?enterkey()//輸入關鍵字
{string?key;int?i=0;
cout< cin>>key;
//SqString?t;//定義子串t
while(key[i]!=‘\0‘)
{t.ch[i]=key[i];i++;}
t.len=i;
t.ch[i]=‘\0‘;//作為子串結束符
}
void?files?()//指出搜索范圍
{
?char?content[NUM][MAX];
?int?nijk;
?FILE?*fp[NUM];
?//----------------------------
?//---主串成員ch[]的初始化-----
?for(i=0;i ??for(j=0;j ???s[i].ch[j]=‘\0‘;
?//----------------------------
?cout<<“輸入要搜索的文件個數(不超過5):“;
?cin>
- 上一篇:基于C++的邊緣檢測算法
- 下一篇:c++利用遺傳算法求解函數優化問題
評論
共有 條評論