struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *ReplaceChrsCpy(d,s,c,rc) register char *d; register char *s; register char c; register char rc; { register char *p=d; if(s && d) { do { *p=*s; if(*p==c) if(c) *p=rc; p++; } while( (*s++) ); } *p=0; return d; }; /* $VER: ReplaceChrsCpy 0.1 */ #endif long test(s,c,rc) char *s; char c; char rc; { long el=0; char *p; char bs[256],ds[256]; sprintf(bs,"<%s>",s); StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); printf("%18s %4ld %4c %4x %4c %4x",bs,(long)strlen(s),c,c,rc,rc); p=ReplaceChrsCpy(ds,s,c,rc); sprintf(bs,"<%s>",ds); printf("%18s %ld \n",bs,(long)strlen(p)); if(StringsBase) CloseLibrary(StringsBase); return el; } main() { /* MAIN */ long el=0; char s[256]; el++; strcpy(s,"Di=es ist= der =teststring\n"); puts(" inputstring len search replace outstring len"); el=test("Ait AtesAtAAig",65,66); el=test("es tstringA",65,70); el=test("testAtestAA",0,64); el=test("testAtestAA",0,0); el=test("testAtestAA",65,0); el=test("Di AtstringA",65,0); el=test("AAA",65,80); el=test("AA",65,80); el=test("A",65,80); el=test("A",65,127); el=test("",0,80); el=test("",64,80); el=test("AtestAA",65,0); el=test("A",65,10); } /* END */ /* inputstring len search replace outstring len 14 A 41 B 42 14 11 A 41 F 46 11 11 0 @ 40 11 11 0 0 11 11 A 41 0 4 12 A 41 0 3 3 A 41 P 50 3 2 A 41 P 50 2 1 A 41 P 50

1 1 A 41  7F <> 1 <> 0 0 P 50 <> 0 <> 0 @ 40 P 50 <> 0 7 A 41 0 <> 0 1 A 41 A < > 1 */