index函数c语言,C语言数据结构中定位函数Index的使用方法
数据结构中定位函数Index的使用方法
实现代码:
#include
#include
#include
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 40 //最大字符串
typedef int Status;
typedef char SString[MAXSIZE+1];
//此处声明的SString[maxsize+1]虽是数组,在SubString中作为指针使用,
//因位是指针,SString[0]存放实际数组的地址,使用时不用加*或&,直接传入数组的值
/*******************************声明部分****************************************/
Status StrAssign(SString T,char *chars);
//生成一个其值等于chars的串T 第一个元素为字符串长度
int StrLength(SString S);
//操作结果:返回S的元素个数,成为串的长度
int StrCompare(SString S,SString T);
//操作结果:若S>T,则返回值>0;若S = T,则返回值 =0;若S
Status SubString(SString Sub,SString T,int pos,int len);
//用Sub返回串T的第pos个字符起长度为len的子串
int Index(SString S,int pos);
//若主串S中存在和串T值相同的子串,则返回它在主串中第pos个字符之后第一次出现的位置;否则函数值为0
/*******************************函数部分****************************************/
Status StrAssign(SString T,char *chars)
{
int i,ct;
for(i = 0;i <= MAXSIZE; i++)
T[i] = '\0'; //全部清零
T[0] = strlen(chars);
for(ct = 1;*chars != '\0';ct++,chars++){
T[ct] = *chars;
}
return OK;
}
int StrLength(SString S)
{
return S[0];
}
int StrCompare(SString S,SString T)
{
int cnt = 1;
while(cnt <= S[0] && cnt <= T[0]){ //非空前提下
if(S[cnt] == T[cnt]){ //相等
cnt++;
}
else{ //不相等
return S[cnt] - T[cnt];
}
}
return S[0]-T[0];
}
Status SubString(SString Sub,int len)
{
if(pos<1 || pos>T[0] || len<0 || len>T[0]-pos+1)
return ERROR;
int ct,cnt;
for(ct = 1,cnt = pos;cnt <= len+pos;ct++,cnt++){
Sub[ct]=T[cnt];
}
Sub[0] = len+1;
return OK;
}
int Index(SString S,int pos)
{
SString Sub;
int i = pos;
if(pos > 0){
int n = StrLength(S),m = StrLength(T);
while( i<= n-m+1){
SubString(Sub,S,i,m-1);
if(StrCompare(Sub,T)==0)
return i;
else
i++;
}
}//if
printf("不存在\n");
return 0; //S中不存在与T相等的子串
}//Index
/*******************************主函数部分**************************************/
int main()
{
char *chars1 = "abcdefhg";
char *chars2 = "defhg";
SString S,T;
StrAssign(S,chars1);
StrAssign(T,chars2);
int ANSWER = Index(S,T,1);
printf("找到子串T在S中的位置 = %d\n",ANSWER);
return 0;
}
实现效果:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
index函数c语言,C语言数据结构中定位函数Index的使用方法相关推荐
- Oracle 语言分类 数据类型 数据类型转换 常用函数 集合操作 子查询
SQL分类 SQL(Structure Query Language)语言是数据库的核心语言.SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL.1 ...
- c语言实现bf算法的定位函数,数据结构c语言版严蔚敏清华大学出版社第四章串.ppt...
数据结构c语言版严蔚敏清华大学出版社第四章串 模式匹配(定位) 设有主串S和子串T(将S称为目标串,将T称为模式串),在主串S中,从位置start开始查找,如若在主串S中找到一个与子串T相等的子串,则 ...
- 数据结构中常用的7种排序方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快速排序法 6.归并排序 7.堆排序 1.冒泡排序 基本介绍 冒 ...
- 函数打桩原理_难重现问题定位“函数打桩”
Authon:Baohaitao Date: 2016-11-25 目的: linux应用软件运行过程中出现难重现的无规律死机,在core文件中gdb中调试没有发现有价值信息:这里给出了另一个思路:函 ...
- (C语言)实现函数逆序输出一组数据
实现函数逆序输出一组数据 题目:函数实现将输入的一组数据逆序输出的功能.(参考函数原型:void isort(int a[], int n)) 输入输出格式要求: 编写函数void isort(int ...
- c语言文件写入函数有哪些,c语言文件读写函数有哪些?
c语言文件读写函数有:"fgetc"和"fputc"(字符读写函数)."fgets"和"fputs"(字符串读写函数). ...
- C语言中文件定位函数总结
C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...
- python文件定位函数_C语言中文件定位函数总结
C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...
- php访问mysql函数吗,PHP访问MySQL数据库函数简介
PHP访问MySQL数据库函数简介 PHP访问MySQL数据库函数简介 1. 进行数据库连接 连接数据库服务器,就是客户端向己运行的数据库服务器发出连接请求, 成功以后就可以对数据库进行相应操作,由于 ...
- VLOOKUP函数将一个excel表格的数据匹配到另一个表中
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
最新文章
- win7安装MongoDB学习笔记
- cf体验服_CF手游体验服_穿越火线枪战王者体验服申请_12月版本
- 福利来袭,送你105例C语言实战
- Java下的可视化开发工具使用 WindowBuilder Pro
- SAP License:CKMLCP运行物料帐时单个物料冲突无法运行
- openJDK之如何下载各个版本的openJDK源码
- https被修改成http排查过程
- 用XSLT和XML改进Struts
- HDU4712 Hamming Distance (随机化)
- 捕获asp.net下的未处理异常
- 【调查 】DBA的压力究竟有多大?
- eclipse java环境配置_Eclipse怎么配置运行环境?
- 湘潭大学计算机学院考研喜报,湘潭大学化学学院考研率连续七年在全校排名第一...
- 小花语音机器人(零)-单片机控制驱动板PCB
- 虚拟机14.00和CentOS7安装全部过程(百度网盘安装包)
- 牛学长苹果数据管理工具
- chrome浏览器Flash Player版本太低,不能使用该上传功能!
- win0如何查看计算机工作组,win10家庭版如何查看工作组计算机
- OpenLayers 3实践与原理探究1-ol2 VS ol3
- 对控制台EXE程序的自动运行问题——以6S模型6s.exe为例
热门文章
- CTF靶机 Lian_Yu 笔记
- Matlab坐标轴标签中文设置宋体,英文设置新罗马字体(Times New Roman)
- kernel logo的制作
- 计算机等级考试照片几寸,二寸照片的尺寸是多少?(小二寸和二寸是多少CM分别多大)...
- 北京仁源欣生获200万美元天使轮融资,和玉资本领投
- BootStrap快速入门
- EBS常用查询语句_查询银行账户
- BZOJ 2037 [Sdoi2008] Sue的小球
- 用python语言怎么打出菱形的*号_Python打印“菱形”星号代码方法
- WD移动硬盘无法存储,提示空间不够(已解决)——当移动硬盘遇到坚果云