index函数c语⾔,C语⾔数据结构中定位函数Index的使⽤⽅法数据结构中定位函数Index的使⽤⽅法
实现代码:
#include
#include
#include
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0c++中string的用法
#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
喜欢与⼈分享编程技术与⼯作经验,欢迎加⼊编程之家官⽅交流!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。