#include <MyIncludes:StringDefininations.h>
#include <U:c.dir/work.dir/strings.dir/instr.dir/instr.h>

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 */
