(1)完成普通的子串查找及替换
  (2)当目标串已经包括替换子串时,不进行替换。例如:"12345jkgkfdjgl;f123kdaj;fj" 将"123"替换为 "12345" 则第一个匹配子串不动。
  (3)可以完成目标串替换为包含子串。 例如:"12345jkgkfdjgl;f123kdaj;fj" 将"123"替换为 "12" 。
  // 参数INPUT:
  // in      需要查找的源字符串
  // out     存放后结果的字符串
  // outlen  结果字符串大尺寸
  // src     要查找的子字符串
  // dst     替换的目标字符串
  // 参数OUTPUT:
  // ret     返回结果   
  //    <0   错误;
  //    >0   成功替换次数
  int strckrpl(char *in, char *out, int outlen, const char *src, char *dst)
  {
  char *p = in;
  unsigned int  len = outlen - 1;
  int ret = 0;
  int srclen = 0;
  int dstlen = 0;
  // 这几段检查参数合法性
  if((NULL == src) || (NULL == dst) || (NULL == in) || (NULL == out))
  {
  ret = -1;
  }
  if((strcmp(in, "") == 0) || (strcmp(src, "") == 0))
  {
  ret = -2;
  }
  if(outlen <= 0)
  {
  ret = -3;
  }
  else
  {
  srclen = strlen(src);
  dstlen = strlen(dst);
  while((*p != '') && (len > 0))
  {
  if(strncmp(p, src, srclen) != 0 )
  {
  int n = strlen(out);
  out[n] = *p;
  out[n + 1] = '';
  p++;
  len--;
  }
  else
  {
  strcat(out, dst);
  len -= dstlen;
  if( strncmp(p,dst,dstlen) != 0 || dstlen < srclen)
  {
  p += srclen;
  ret++;
  }
  else
  {
  printf("find the dst string ");
  p += dstlen;
  }
  }
  }
  }
  return ret;
  }