#include <stdio.h>
#define MAXLEN 100
//定长顺序串的类型定义
typedef struct
{
char ch[MAXLEN];
int len;
} SeqString;
/*
子串的定位
若串str中存在与串str1相同的子串,返回子串第一次出现的位置,
若子串长度大于原串,或没有找到,返回-1
*/
int StrIndex(SeqString *str,SeqString *str1)
{
int i,j;
i=j=0;
//排除非法情况
if((str->len)<(str1->len))
{
return -1;
}
while(j<=str1->len&&i<=str->len)
{
if(str->ch[i]==str1->ch[j])
{
//两个字符相同
i++;
j++;
if(j==str1->len)
{
return i-j+1;
}
}
else{
//两个字符不同
i=i+1;
}
}
return -1;
}
C语言顺序表的子串定位
于 2024-01-25 18:00:43 首次发布
![](https://img-home.csdnimg.cn/images/20240709112858.png)