#include<stdio.h>
#define MAXLEN 255
typedef struct{
char ch[MAXLEN];
int length;
}SString;
int StrLength(SString S){
return S.length;
}
bool SubString(SString &Sub, SString S, int pos, int len){
if(pos+len-1 > S.length)
return false;
for (int i=pos-1; i<pos+len-1; i++){
Sub.ch[i-pos+1] = S.ch[i];
Sub.length = len;
}
return true;
}
int StrCompare(SString S, SString T){
for(int i=0; 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;
}
int Index(SString S, SString T){
int i=0, 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;
}
int main(){
int ret;
SString S = {"abcdef",6};
SString T = {"zxcvbnm",7};
printf("/******StrCompare*******/\n");
ret=StrCompare(S,T);
if(ret > 0)
printf("S>T\n");
else if(ret == 0)
printf("S=T\n");
else
printf("S<T\n");
printf("/******SubString********/\n");
SString Sub={"",0};
if(SubString(Sub,S,1,3)){
printf("%s\n",Sub.ch);
}
printf("/******Index************/\n");
ret = Index(S,T);
if(ret != 0){
printf("When i=%d,S=T\n",ret);
}
else
printf("S!=T\n");
return 0;
}