串简单模式匹配

来源:互联网 发布:知乎 发现 编辑:程序博客网 时间:2024/06/07 15:10
//串的简单模式匹配#include <stdio.h>#include <stdlib.h>#define MAXSIZE 30typedef struct{char data[MAXSIZE];int len;}SeqString;                     //顺序串类型int StrIndex_BF(SeqString *S, SeqString *T)  //简单模式匹配{int i = 0, j = 0;while (i < S->len && j < T->len){if (S->data[i] == T->data[j]){i++;j++;}else{i = i - j + 1;       //将指针i 调至主串S 新一趟开始的匹配位置j = 0;               //将指针j 调至子串T 的第一个字符位置}}if (j >= T->len){return (i - T->len);     //}else{return (-1);}}void gets1(SeqString *p)         //给p->data 数组输入一个字符串{int i = 0;char ch;p->len = 0;scanf("%c", &ch);while (ch != '\n'){p->data[i++] = ch;p->len++;scanf("%c", &ch);}p->data[i++] = '\0';}int main(){int i;SeqString *s, *t;s = (SeqString *)malloc(sizeof(SeqString));   //生成主串s 的存储空间t = (SeqString *)malloc(sizeof(SeqString));   //生成子串t 的存储空间printf("Input main string S:\n");gets1(s);printf("Output main string S:\n");puts(s->data);                                //输出主串s printf("Input substring T:\n"); gets1(t);printf("Output substring T:\n");puts(t->data);                                //输出子串ti = StrIndex_BF(s, t);               //对主串s 和子串t 进行模式匹配if (i == -1){printf("No match string!\n");           }else{printf("Match position: %d\n", i + 1);    //匹配成功,输出子串t 在主串s中的起始位置}return 0;}

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 鹰的蜕变 华丽的蜕变 蝴蝶的蜕变 蜕变怎么读 蜕变观后感 作文蜕变 蝴蝶蜕变图 蜕变是什么意思 莹莹华丽蜕变 小白兔蜕变史 青梅女友蜕变 雾眉结痂蜕变图片 青梅女友的蜕变 主角蜕变成旧日支配 古穿今之蜕变 蜕变励志图片 小白兔的蜕变 人生蜕变图片 蜕变的初心观后感 小白兔蜕变记 蜕变的生命才美丽歌谱 蜕变 励志图片 蝴蝶的蜕变过程 关于蜕变励志的句子 蚕的蜕变过程 毛毛虫蜕变过程 蝉的蜕变过程 蝴蝶蜕变过程 蝴蝶怎么蜕变 处女老师的蜕变 蝴蝶蜕变图片 鹰的蜕变过程 丑女柴废蜕变记 蝴蝶的蜕变过程图片 女孩到女人的蜕变 天蝎女一般几岁蜕变 十句话经典语录蜕变 蜕膜流出来的图片 蜕膜残留 生化妊娠排出蜕膜图片 蜗壳