#include <bits/stdc++.h>
using namespace std;
#define MAXLEN 255 //预定最大串长为255
typedef struct{
char ch[MAXLEN]; //每个分量存储一个字符
int length;//串的实际长度
}SString;
typedef struct{
char *ch; //按串长分配存储区,ch指向串的基地址
int length;//串长
}HString;
HString S;
S.ch = (char *)malloc(MAXLEN * sizeof(char));
S.length = 0;
signed main()
{
}
#include <bits/stdc++.h>
using namespace std;
typedef struct StringNode //存储密度低
{
char ch;
struct StringNode *next;
}StringNode, *String;
typedef struct StringNode{ //存储密度大
char ch[4];
struct StringNode *next;
}StringNode, *String;
signed main()
{
}
#include <bits/stdc++.h>
using namespace std;
#define MAXLEN 255
typedef struct{
char ch[MAXLEN];
int length;
}SString;
//求子串
bool SubString (SString &Sub , SString S ,int pos ,int len)
{
//子串范围越界
if(pos+len-1 > S.length)
return false;
for(int i = pos ; i < pos +len ; i++)
{
Sub.ch[i-pos+1] = S.ch[i];
}
Sub.length = len;
return true;
}
//比较操作
int StrCompare(SString S,SString T)
{
for(int i = 1 ; i < S.length && i <= T.length ; i++)
{
if(S.ch[i] != T.ch[i])
return S.ch[i]-T.ch[i];
}
//扫描过的所有字符都相同,则长度长的串更大
return S.length-T.length;
}
//若主串S中存在与子串T相同的子串,返回第一次出现的位置
int Index(SString S,SString T)
{
int i = 1 ,n = StrLength(S),m = StrLength(T);
SString sub;
while(i<=n-m+1)
{
SubString(sub,S,i,m);
if(StrCompare(sub,T) != 0) ++i;
else return i;
}
return 0;
}
signed main()
{
}