注意下面代码均不使用c++自带stl 请不要在头文件添加#include
#include <iostream>
using namespace std;
#define maxlen 40
typedef struct{
char ch[maxlen];
int length;
}sstring;
typedef struct{
char *ch;
int lenght;
}hstring;
typedef struct stringnode{
char ch[4];
struct stringnode *next;
}stringnode,*string;
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;
}
int index(sstring s,sstring t){
int i=1;
int n=s.length;
int m=t.length;
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 argc, char** argv) {
return 0;
}
|