xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

在一個文件中查找某個關鍵詞,并把出現該關鍵詞的行及行號顯示出來。 使用C語言的字符串存儲結構來實現字符串的操作,編寫函數index實現在一個傳中查找子串的功能。然后從文件中每次讀入一行,作為一個主串看待,然后查找是否存在待查找的關鍵詞(子串),如果有則顯示該行內容及行號,否則繼續處理下一行。

資源截圖

代碼片段和文件信息

#include?
#include?

#define?MAXSTRLEN?255?????????//最大串長
typedef?char?SString[MAXSTRLEN+1];???//串的定長順序存儲表示
int?next[MAXSTRLEN];????????????//KMP算法中用到的next


void?get_next(SString?Tint?next[])???//求next值
{
int?j=1k=0;
next[1]=0;
????while(j{
???if(k==0||T[k]==T[j])?
???{
????++j;++k;?
????if(T[j]!=T[k])?next[j]=k;
????else?next[j]=next[k];
???}
???else?k=next[k];
}
}


int?Index(SString?SSString?Tint?pos)?//KMP算法
{
int?i=posj=1;
???while(i<=S[0]&&j<=T[0])
???{
????if(j==0||S[i]==T[j])?{++i;++j;}
????else
?????j=next[j];
???}
???if?(j>T[0])?return?(i-T[0]);
???else
????return?0;
}

int?lenth(SString?str)????//求串長
{
int?i=1;
while(str[i])?i++;
return(i-1);
}

void?find(char?name[]SString?keys)?//查找函數,該函數是整個程序的重要部分,對于輸入的每一個
{????????????????????????????????????//要查找的關鍵字,從小說文件中逐行讀取字符串查找
SString?text;?//存放從小說文件讀取的一行字符串??????
int?i=1j=0knum=0;???//i用于存放行號,j用于存放列號k用于輸出格式的控制
FILE?*fp;
if?(!(fp=(fopen(name“r“))))?//打開小說文件
{
???printf(“Open?file?error!\n“);
???exit(0);

評論

共有 條評論