//查询字符串
Elemtype Search_Strings(LinkList &head,char *str)
{
LinkList p=head;
Elemtype num=0,counts=0;
Elemtype i,j;
if(p==NULL)
{
printf("文本有误。");
return OVER;
}
else
{
while(p!=NULL)
{
while(strstr(p->data,str)!=NULL) //该字符串在总字符串中不为空
counts=Search_Tools(p->data,str);
p=p->next;
}
return counts;
}
}
//查询字符串
void findstr(){
PrintWord();
char str[MAX];
getchar();
printf("\t\t 输入想要查找的字符串:");
gets(str);
printf("\t\t|>>________________________________________________<<|\n");
struct line *info;
int i = 0, find_len, found = 0, position;
char substring[MAX];
info = start;
int find_num = 0; //匹配到的次数
find_len = strlen(str);
while (info) //查询
{
i = 0; //行间循环
while (i <= (strlen(info->text) - find_len)) //行内查找循环
{ int k=0;
for(int j=i;j<i+find_len;j++) // 行内的字符串从第一个开始按定长find_len赋给substring
{
substring[k] = info->text[j];
k++;
}
if (strcmp(substring,str) == 0)
{
find_num++;
printf("\t\t|第%d次出现在:%d行%d列\n",find_num,info->num,(i+1+1)/2);
found = 1;
}
i++;
}
info = info->next;
}
if (found) //查找成功
printf("\t\t|\t\t该内容出现的总次数为%d\n",find_num);
else //查找不成功
printf("\t\t该内容不存在\n");
printf("\t\t|>>________________________________________________<<|\n");
}