#include #include long CutString(char *as,*bs,*outs) { long l=0,pl=0,al=0,bl=0,aslenl=strlen(as),bslenl=strlen(bs); if((aslenl>0) && (bslenl>0) ) { memset(outs,0,aslenl); al=Instr(as,bs,0); if(al>0) { l=al; bl=Instr(as,bs,l); pl=bl-al-bslenl; if(bl==0) { pl=aslenl-al-bslenl+1; } if(pl>0) { l=l+bslenl-1; strncpy((outs),as+l,pl); } } if(strlen(outs)==0) l=0; } return l; } /* CutString */ main() { long l=0,el=0; int i=0; char *s1="?",*s2="??",*s3[256]; static char *fs=" %4d %16s %4s <%16s> %8d %8d\n",os[256]; static char s[16][32]= { "?","ASD?FGDH?J", "12.4?GFJFJ","SSGSH 3456","?QWERTY?","?ASDF", "ZXCVB?","QW??ERT??YU","UIOP??ASD","ZXCVB??","QW??ERT???YU","??UIOP??ASD" }; puts(" Nr String Searchstring Outputstring lenOut pos(l)"); for(i=0;i<12;i++) { l=CutString(s[i],s1,os); printf(fs,i,s[i],s1,os,strlen(os),l); } for(i=0;i<12;i++) { l=CutString(s[i],s2,os); printf(fs,i,s[i],s2,os,strlen(os),l); } return el; } /* main */