home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / C / DLIBSSRC.ZIP / STRRPL.C < prev    next >
Encoding:
C/C++ Source or Header  |  1987-06-14  |  531 b   |  27 lines

  1. int strrpl(string, ptrn, rpl, n)
  2. char *string;
  3. char *ptrn;
  4. register char *rpl;
  5. register int n;
  6. /*
  7.  *    Replace at most <n> occurances of <ptrn> in <string> with <rpl>.
  8.  *    If <n> is -1, replace all.  Return the number of replacments.
  9.  */
  10. {
  11.     register char *p, *q = string;
  12.     register int d, rlen, nn = 0;
  13.     char *strstr();
  14.  
  15.     rlen = strlen(rpl);
  16.     d = rlen - strlen(ptrn);
  17.     while(n && (p = strstr(q, ptrn))) {
  18.         ++nn;
  19.         stradj(p, d);
  20.         strncpy(p, rpl, rlen);
  21.         q = p + rlen;
  22.         if(n > 0)
  23.             --n;
  24.     }
  25.     return(nn);
  26. }
  27.