/*
*Copyright (c) 2017,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:项目-
采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0
*作    者:邵雪源
*完成日期:2017年12月14日
*版 本 号:v1.0
*/
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100             //最多的字符个数
typedef struct
{   char data[MaxSize];         //定义可容纳MaxSize个字符的空间int length;                 //标记当前实际串长
} SqString;
void StrAssign(SqString &s,char cstr[]) //s为引用型参数
{   int i;for (i=0;cstr[i]!='\0';i++)s.data[i]=cstr[i];s.length=i;
}
void DispStr(SqString s)
{   int i;if (s.length>0){   for (i=0;i<s.length;i++)printf("%c",s.data[i]);printf("\n");}
}
int str_count(SqString s,SqString t)
{int i=0,j=0,count=0;while (i<s.length && j<t.length){if (s.data[i]==t.data[j])   //继续匹配下一个字符{i++;                //主串和子串依次匹配下一个字符j++;}else                    //主串、子串指针回溯重新开始下一次匹配{i=i-j+1;            //主串从下一个位置开始匹配j=0;                //子串从头开始匹配}//在BF算法中,没有下面的这一部分//这里增加一个判断,可以“捕捉”到已经产生的匹配if (j>=t.length)        //如果j已经达到了子串的长度,产生了一个匹配{count++;            //匹配次数加1i=i-j+1;            //主串从下一个位置开始继续匹配j=0;                //子串从头开始匹配}}return(count);
}int main()
{SqString s,t;StrAssign(s,"accaccacacabcacbab");StrAssign(t,"accac");printf("s:");DispStr(s);printf("t:");DispStr(t);printf("%d\n",str_count(s,t));return 0;
}

第八周实践项目 5 计数的模式匹配相关推荐

  1. 第八周实践项目9 算法库——广义表

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  2. 第八周实践项目7 对称矩阵的压缩存储及基本运算

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  3. 第八周实践项目6 猴子选大王(数组版)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目6-一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m ...

  4. 第八周实践项目4 字符串加密

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目- 一个文本串可用事先编制好的字符映射表进行加密.例如,设字符映 ...

  5. 第八周实践项目10 稀疏矩阵的十字链表表示

    #include <stdio.h> #include <malloc.h> #define M 3 //矩阵行 #define N 3 //矩阵列 #define Max ( ...

  6. 第八周实践项目8 稀疏矩阵的三元组表示的实现及应用

    #include <stdio.h> #define M 6 #define N 7 #define MaxSize 100 //矩阵中非零元素最多个数 typedef int ElemT ...

  7. 第八周实践项目3 顺序串一些算法操作

    sqString.h #define MaxSize 100 //最多的字符个数 typedef struct { char data[MaxSize]; //定义可容纳MaxSize个字符的空间in ...

  8. 数据结构上机实践第八周项目5 - 计数的模式匹配

    计数的模式匹配 模式匹配在生活中运用广泛,日常所见的指纹识别,人脸识别......无一不用到模式匹配,为了体现模式匹配的基本思想,本次实践将实现简单的字符串的计数模式匹配. 项目要求如下:采用顺序结构 ...

  9. 2015级C++第14周实践项目 模板

    [项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的 ...

最新文章

  1. 几个cvebase_ifo基础信息融合在一起
  2. SQL提交数据三种类型
  3. 你的微信二维码是唯一的吗?【微信二维码的秘密】
  4. VB.NET(2005)中关于dll调用的错误信息(转)
  5. [云炬创业基础笔记] 第三章测试10~12
  6. kibana操作elasticsearch:创建映射字段
  7. 网页粒子背景插件 -Canvas-nest.js
  8. Google AI 的焦虑:拆分搜索和人工智能部门
  9. querySelector() 选择器语法
  10. IIS DirectoryEntry
  11. Matlab数理统计工具箱应用简介(转)
  12. 皮尔逊(Pearson)相关系数 - 公式和代码实现
  13. 计算机视觉论文-2021-07-26
  14. 平板app尺寸html5,app界面设计尺寸规范大全
  15. 微信二维码来源统计自动生成二维码统计?
  16. mycat连接数据库8.0以上 处理程序连接query_cache_size报错信息 mycat升级数据库踩坑
  17. 如何关闭苹果Mac开机启动声音
  18. Windows Shellcode开发[2]
  19. 紫微斗数:命主和身主
  20. “文件或目录损坏且无法读取”的简单修复

热门文章

  1. Perl/CGI脚本语言编程学习资料及开发工具下载大全
  2. 简谈高通Trustzone的实现
  3. 使用Silverlight for Embedded开发绚丽的界面(4)
  4. Leetcode PHP题解--D25 500. Keyboard Row
  5. delphi 搭建安卓开发环境
  6. 服务器宕机造成英国航空史上最严重的大混乱
  7. C语言指针(个人的认识)
  8. Pyqt 窗体间传值
  9. 修改VIM恶心的注释自动格式化
  10. oracle数据误操作恢复【flashback闪回操作】