o_string.c
上传用户:jmzj888
上传日期:2007-01-02
资源大小:220k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #include <global.h>
  2. void bmove(dst, src, len)
  3. register char *dst;
  4. register const char *src;
  5. register uint len;
  6. {
  7.   while (len-- != 0) *dst++ = *src++;
  8. }
  9. void bmove_allign(dst, src, len)
  10. register char *dst;
  11. register const char *src;
  12. register uint len;
  13. {
  14.   while (len-- != 0) *dst++ = *src++;
  15. }
  16. void bmove_upp(dst, src, len)
  17. register char *dst;
  18. register const char *src;
  19. register uint len;
  20. {
  21.   while (len-- != 0) *--dst = *--src;
  22. }
  23. void strappend(s,len,fill)
  24. register char *s,fill;
  25. size_s len;
  26. {
  27.   register char *endpos;
  28.   endpos = s+len;
  29.   while (*s++) ;
  30.   s--;
  31.   while (s<endpos) *(s++) = fill;
  32.   *(endpos) = '';
  33. } /* strappend */
  34. my_string strcont(str,set)
  35. reg1 my_string str;
  36. reg2 my_string set;
  37. {
  38.   reg3 string start = set;
  39.   while (*str)
  40.   {
  41.     while (*set)
  42.     {
  43.       if (*set++ == *str)
  44. return (str);
  45.     }
  46.     set=start; str++;
  47.   }
  48.   return (NullS);
  49. } /* strcont */
  50. char *strend(s)
  51. register const char *s;
  52. {
  53.   while (*s++) ;
  54.   return (char*) (s-1);
  55. }
  56. my_string strfill(s,len,fill)
  57. reg1 my_string s;
  58. reg3 char fill;
  59. reg2 size_s len;
  60. {
  61.   while (len--) *s++ = fill;
  62.   *(s) = '';
  63.   return(s);
  64. } /* strfill */
  65. char *strcend(s, c)
  66. register const char *s;
  67. register pchar c;
  68. {
  69.   for (;;)
  70.   {
  71.      if (*s == (char) c) return (char*) s;
  72.      if (!*s++) return (char*) s-1;
  73.   }
  74. }
  75. char *strfind(str,search)
  76. register const char *str;
  77. const char *search;
  78. {
  79.  register char *i,*j;
  80. skipp:
  81.   while (*str != '') {
  82.     if (*str++ == *search) {
  83.       i=(char*) str; j=(char*) search+1;
  84.       while (*j)
  85. if (*i++ != *j++) goto skipp;
  86.       return ((char*) str-1);
  87.     }
  88.   }
  89.   return ((char*) 0);
  90. } /* strfind */
  91. uint strinstr(str,search)
  92. reg1 const char *str;
  93. reg4 const char *search;
  94. {
  95.   reg2 my_string i,j;
  96.   string start = (my_string) str;
  97.  skipp:
  98.   while (*str != '')
  99.     {
  100.       if (*str++ == *search)
  101. {
  102.   i=(char*) str; j= (char*) search+1;
  103.   while (*j)
  104.     if (*i++ != *j++) goto skipp;
  105.   return ((uint) (str - start));
  106. }
  107.     }
  108.   return (0);
  109. }
  110. char *strmake(dst, src, length)
  111. reg1 char *dst;
  112. reg2 const char *src;
  113. reg3 size_s  length;
  114. {
  115.   while (length--)
  116.     if (! (*dst++ = *src++))
  117.       return dst-1;
  118.   *dst=0;
  119.   return dst;
  120. }
  121. char *strmake_overlapp(dst, src, length)
  122. reg1 char *dst;
  123. reg2 const char *src;
  124. reg3 size_s  length;
  125. {
  126.   while (length--)
  127.     if (! (*dst++ = *src++))
  128.       return dst-1;
  129.   *dst=0;
  130.   return dst;
  131. }
  132. char *strnmov(dst, src, n)
  133.      reg1 char *dst;
  134.      reg2 const char *src;
  135.      reg3 size_s n;
  136. {
  137.   while (n-- != 0) {
  138.     if (!(*dst++ = *src++)) {
  139.       return (char*) dst-1;
  140.     }
  141.   }
  142.   return dst;
  143. }
  144. size_s strnlen(src,max_len)
  145.      reg1 char *src;
  146.      reg2 size_s max_len;
  147. {
  148.   char *start,*end;
  149.   for (start=src,end=start+max_len ; *src && src != end ; src++) ;
  150.   return (size_s) (src-start);
  151. }
  152. #include <varargs.h>
  153. char *strxmov(va_alist)
  154. va_dcl
  155. {
  156.   va_list pvar;
  157.   char * dst;
  158.   const char *src;
  159.   va_start(pvar);
  160.   dst=va_arg(pvar,char *);
  161.   src=va_arg(pvar,const char*);
  162.   while (src != NullS) {
  163.     while (*dst++ = *src++) ;
  164.     dst--;
  165.     src = va_arg(pvar, char *);
  166.   }
  167.   *dst = 0; /* there might have been no sources! */
  168.   return dst;
  169. }