struct StringsBase *StringsBase=0L; /*#ifdefine RUN*/ #ifdef RUN char *AfterStrStr(s,as) register char *s; register char *as; { register char *bp,*p=s; if(s) { p=(char *)StrStr(s,as); if(p) { bp=as; do p++; while(*bp++); p--; } } return p; }; /* VER: 0.1 */ #endif long test(s,as) char *s; char *as; { long el=0,l; char os[256]; char bs[256]; char *p; strcpy(os,s); l=(long)strlen(s); l++; sprintf(bs,"<%s>",s); printf("%13s %6x %4ld",bs,s,(long)strlen(s)); sprintf(bs,"<%s>",as); printf("%8s %6x %4ld",bs,as,(long)strlen(as)); p=(char *)AfterStrStr(s,as); sprintf(bs,"<%s>",p); printf(" %11s %6x %4ld\n",bs,p,(long)strlen(p)); return el; /* */ } int main() { /* MAIN */ long el=0; char *p,s[1024],as[1024],rs[256]; el--; strcpy(rs,"test"); StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); strcpy(as,"AfterStrStr"); puts(" Inputstring adr len search adr len return adr len"); el=test(as,"Aft"); el=test(as,"S"); el=test(as,"ng"); el=test(as,"not"); el=test(as,""); el=test("","test"); el=test("",""); el=test(0L,"not"); el=test(as,0L); el=test(0L,0L); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* Turbo C 2.01: Inputstring adr len search adr len return adr len fad0 11 226 3 fad3 8 fad0 11 22a 1 fad6 5 fad0 11 22c 2 <(null)> 0 0 fad0 11 22f 3 <(null)> 0 0 fad0 11 <> 233 0 fad0 11 <> 234 0 235 4 <(null)> 0 0 <> 23a 0 <> 23b 0 <> 23a 0 <(null)> 0 0 23c 3 <(null)> 0 0 fad0 11<(null)> 0 0 fad0 11 <(null)> 0 0<(null)> 0 0 <(null)> 0 0 StrStr: Strings.library 0.5 hcc: version 2.0 Copyright (c) 1988,1989,1991 by Sozobon, Limited. Amiga Version 1.1 by Detlef Würkner. Inputstring adr len search adr len return adr len 21DB2C 11 20CC92 3 21DB2F 8 21DB2C 11 20CC90 1 21DB32 5 21DB2C 11 20CC8D 2 <> 0 0 21DB2C 11 20CC89 3 <> 0 0 21DB2C 11 <> 20CC88 0 <> 21DB37 0 <> 20CC87 0 20CC82 4 <> 0 0 <> 20CC81 0 <> 20CC80 0 <> 20CC81 0 <> 0 0 20CC7C 3 <> 0 0 21DB2C 11 <> 0 0 <> 21DB37 0 <> 0 0 <> 0 0 <> 0 0 ===== korrekte Testdaten: =============== Inputstring adr len search adr len return adr len 261FFC 11 21CEDE 3 261FFF 8 261FFC 11 21CEDC 1 262002 5 261FFC 11 21CED9 2 <> 0 0 261FFC 11 21CED5 3 <> 0 0 261FFC 11 <> 21CED4 0 261FFC 11 <> 21CED3 0 21CECE 4 <> 0 0 <> 21CECD 0 <> 21CECC 0 <> 21CECD 0 <> 0 0 21CEC8 3 <> 0 0 261FFC 11 <> 0 0 261FFC 11 <> 0 0 <> 0 0 <> 0 0 */