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的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日一题10003-津津不高兴
- 下一篇: unity抠人像原理_OpenCV Fo