题目描述
将子串在母串中第一次出现的位置找出来。

图1:在母串中第pos个位置定位子串的算法


图2:从母串中第pos个位置获得长度为len的子串

输入
若干对字符串,每对字符串占一行并用一个空格分开。前一个字符串为母串,后者为子串。字符串只包含英文字母的大小写。每个字符串不超过98个字符。

输出
输出子串在母串中首次出现的位置,如果母串中不包含子串则输出0。每个整数占一行。

样例输入
ACMCLUB ACM
DataStructure data
domybest my
样例输出
1
0
3

未完 待续。。。。。。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
#define ERROR 0
#define OK 1
#define MAX 100typedef struct{char *ch;int length;
}String;int StrLength(String *s)
{return s->length ;
}int StrCompare(String *S,String *T)
{int i = 0;while(S->ch[i]!='\0'&&T->ch[i]!='\0'){if(S->ch[i]!=T->ch[i])return -1;i++;}return 0;
}int SubString(String *S,String *Sub,int len,int pos)
{//用Sub返回串S的第pos个字符起长度为len的子串 int i = 0;if(pos<0||pos > S->length +1||len< 0||len>S->length)return ERROR;if(Sub->ch)free(Sub->ch);//释放旧空间 if(!len){Sub->ch = NULL;//空子串 Sub->length = 0;}else{//完整子串 Sub->ch = (char*)malloc(len*sizeof(char));pos-=1;while(i < len){Sub->ch[i++] = S->ch[pos++];}if(S->ch[pos-1]!='\0')Sub->ch[i] = '\0';Sub->length = len;}return OK;
}int Index(String *S,String *T,int pos)
{//T为非空串。若主串S中第pos个字符之后存在与T相等的子串//则返回第一个这样的子串在S中的位置,否则返回-1 int i = pos;int m,n;String sub;n = StrLength(S);m = StrLength(T);while( i <= n-m+1){SubString(S,&sub,m,i);if(StrCompare(&sub,T)!=0){i++;}elsereturn i;//返回子串在主串中的位置 }return -1;//S中不存在与T相等的子串
}int main()
{String S,T;int dex,i,l1,l2;char str1[MAX+10],str2[MAX+10];while(scanf("%s",str1)!=EOF){memset(str2,0,sizeof(str2));scanf("%s",str2);l1 = strlen(str1);l2 = strlen(str2);S.ch = (char*)malloc(l1*sizeof(char));T.ch = (char*)malloc(l2*sizeof(char));S.ch = str1;T.ch = str2;S.length = l1;T.length = l2;dex = 1;i = Index(&S,&T,dex);if(i!= -1)printf("%d\n",i);elseprintf("ERROR\n");}return 0;} 

转载于:https://www.cnblogs.com/hellocheng/p/7350134.html

HNCU 1746: 算法4-1,4-3:定位子串相关推荐

  1. 3 大算法,奠定 LoRa 地理定位

                               3 大算法,奠定 LoRa 地理定位 引言 因篇幅有限,本文仅列出核心图表:如需完整的定位文档(长达 15 页),请链接:锐米开源二:锐米LoRa ...

  2. 六大室内定位方案算法对比,谁成为室内定位方案主流-新导智能

    多方面的需求推动了室内定位技能的开展. 现在室外定位技能老练.市场机制良好.运用广泛.然而室内无GPS信号无法进行定位,但人们大部分时刻是处在室内,故对室内定位也有强烈的定位需求.室内定位方案的技能分 ...

  3. HNCU 1328: 算法2-18~2-19:双向循环链表

    <数据结构> 2.3 循环链表 http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id= ...

  4. wifi定位算法 java_几种室内定位技术方案对比,室内定位种类的优缺点一目了然...

    最近几年,随着物联网技术的发展,定位技术也随之发展起来,室内定位技能非常实用,运用广泛,如图书馆,养老院,体育馆,地下车库,学校,仓库等都能够完成对人员及物品的快速定位.目前,在苏州新导室内定位体系中 ...

  5. 【WSN定位】基于matlab灰狼算法优化无线传感器非测距定位【含Matlab源码 2008期】

    一.无线传感器网络DVHop定位算法简介 1 传统DV-hop算法定位算法原理 DV-hop算法中主要将节点分为锚节点与未知节点,锚节点在整个网络中占有一定的比例,因为锚节点本身带有GPS定位系统,而 ...

  6. 刚性仿射变换算法_一种视觉定位中的点集仿射变换算法的制作方法

    本发明涉及相机标定 技术领域: ,具体涉及一种视觉定位中的点集仿射变换算法. 背景技术: :随着工业自动化技术的推进,越来越多的产线工件组装.检测.测量等工作正在由机器人或自动化设备逐步替代,而这些技 ...

  7. 质心定位算法C语言实现,TOA定位算法.pdf

    TOA定位算法 第32卷第12期 仪 器仪 表 学报 VoL32No.12 Chinese ofScientificInstrument 2011年12月 Journal Dee.20ll 测距误差分 ...

  8. matlab tdoa aoa,基于改进最小二乘算法的TDOA/AOA定位方法.PDF

    闫雷兵,陆音,张业荣 基于改进最小二乘算法的 / 定位方法[] 电波科学学报, , ( ): : / . TDOA AOA J. 2016 31 2 394400.DOI 10.13443 .cors ...

  9. 蒙特卡洛粒子滤波定位算法_蒙特卡罗定位算法(基于粒子滤波的定位算法) ——原理、理解与仿真...

    1 算法原理 1.1 机器人定位问题 关于机器人定位,有三大问题,它们分别是: (1)"全局定位":指初始位置未知,机器人靠自身运动确定自己在地图中的位姿. (2)"位姿 ...

最新文章

  1. .svn提交项目提示更新副本
  2. CLion 2017 注册码
  3. 与流氓软件的一次艰苦“奋战”
  4. Lync和Exchange 2013集成PART5:UCS和HD头像
  5. 平流式初沉池贮砂斗计算_给排水之市政污水处理构筑物:平流式、曝气式、旋流式三大沉砂池...
  6. 诺顿360“偷偷”挖矿被怒喷,杀毒软件手伸向GPU,官方:都是为了用户好
  7. python 类-Python 类class定义 方法与属性教程
  8. Create Digital Engagement on Multiple Channels
  9. Linux安装ntp同步时间
  10. 现代化蔬菜大棚采用什么和计算机自动控制,温室大棚自动控制系统存在的意义以及未来的发展...
  11. dll反编译工具总结
  12. selenium实现失败重运行
  13. Mybatis-学习笔记(7)缓存机制
  14. Emotet***病毒升级,对抗杀毒软件的能力再次增强
  15. 自动发卡平台网站源码-带手机版 带多套商户模板
  16. Mac电脑快速断网详细
  17. [SIGMOD 2021] SharPer: Sharding Permissioned Blockchains Over Network Clusters
  18. mysql C openmp_OpenMP: sections分段并行 | 学步园
  19. SVM要点总结(一)
  20. 私人影院微信小程序源码,采用腾讯小程序云开发,包括影院动态,最新影讯,房间预约,后台预约管理,导出预约表格Excel数据等功能

热门文章

  1. datatable 创建列赋值_DataTable创建行和列,DataReader读取
  2. webService学习8:wsdl文档解释
  3. php在一定范围内去随机整数,php-如何从随机位生成范围内的整数
  4. java jframe添加按钮_JFrame窗口中如何加按钮啊?(JDK)
  5. net 控制台 定时_.NET Core实现基于Quart.Net的任务管理
  6. 几点基于Web日志的Webshell检测思路
  7. arcgis api for javascript从地图如何读取要素
  8. Scala入门到精通——第七节:类和对象(二)
  9. 高可用系统架构设计 技术方案
  10. 红黑树、B(+)树、跳表、AVL对比