青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

陋居

淡薄名利,修身養(yǎng)性

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  31 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks

常用鏈接

留言簿

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

;***************************************************************************************************************
;       strlen returns the length of a null-terminated string in bytes, not including the null byte itself.
;       Algorithm:
;       int strlen (const char * str)
;       {
;           int length = 0;
;
;           while( *str++ )
;                   ++length;
;
;           return( length );
;       }

;***************************************************************************************************************
;       memcpy() copies a source memory buffer to a destination buffer.
;       Overlapping buffers are not treated specially, so propogation may occur.
;       Algorithm:
;       void * memcpy(void * dst, void * src, size_t count)
;       {
;               void * ret = dst;
;               /*
;                * copy from lower addresses to higher addresses
;                */
;               while (count--)
;                       *dst++ = *src++;
;
;               return(ret);
;       }

;***************************************************************************************************************
;       memmove() copies a source memory buffer to a destination memory buffer.
;       This routine recognize overlapping buffers to avoid propogation.
;       For cases where propogation is not a problem, memcpy() can be used.
;       Algorithm:
;       void * memmove(void * dst, void * src, size_t count)
;       {
;               void * ret = dst;
;               if (dst <= src || dst >= (src + count)) {
;                       /*
;                        * Non-Overlapping Buffers
;                        * copy from lower addresses to higher addresses
;                        */
;                       while (count--)
;                               *dst++ = *src++;
;                       }
;               else {
;                       /*
;                        * Overlapping Buffers
;                        * copy from higher addresses to lower addresses
;                        */
;                       dst += count - 1;
;                       src += count - 1;
;
;                       while (count--)
;                               *dst-- = *src--;
;                       }
;
;               return(ret);
;       }

;***************************************************************************************************************
int strcmp(const char *str1,const char *str2)
{
while((*str1==*str2)&&(*str1))
{
str1++;
str2++;
}
if((*str1==*str2)&&(!*str1)) //Same strings
return 0;
else if((*str1)&&(!*str2))  //Same but str1 longer
return -1;
else if((*str2)&&(!*str1)) //Same but str2 longer
return 1;
else
return((*str1>*str2)?-1:1);
}

;***************************************************************************************************************
char *strstr1(const char *str1, const char *str2)
{
     char *cp = (char *)str1;  //type transfer
     char *s1, *s2;
     if(!str2) 
      return (char *)str1;
     while (cp)
     {
      s1 = cp;
      s2 = (char *)str2;
      while( !s1 && !s2 && !(*s1-*s2))
      {
       s1++, s2++;
      }
      if(!s2) 
       return cp;
      else
       cp++;
     }
     return NULL;
}

;***************************************************************************************************************
*char *_itoa, *_ltoa, *_ultoa(val, buf, radix) - convert binary int to ASCII string
static void __cdecl xtoa (unsigned long val, char *buf, unsigned radix, int is_neg )
{
        char *p;                /* pointer to traverse string */
        char *firstdig;         /* pointer to first digit */
        char temp;              /* temp char */
        unsigned digval;        /* value of digit */

        p = buf;

        if (is_neg) {
            /* negative, so output '-' and negate */
            *p++ = '-';
            val = (unsigned long)(-(long)val);
        }

        firstdig = p;           /* save pointer to first digit */

        do {
            digval = (unsigned) (val % radix);
            val /= radix;       /* get next digit */

            /* convert to ascii and store */
            if (digval > 9)
                *p++ = (char) (digval - 10 + 'a');  /* a letter */
            else
                *p++ = (char) (digval + '0');       /* a digit */
        } while (val > 0);

        /* We now have the digit of the number in the buffer, but in reverse
           order.  Thus we reverse them now. */

        *p-- = '\0';            /* terminate string; p points to last digit */

        do {
            temp = *p;
            *p = *firstdig;
            *firstdig = temp;   /* swap *p and *firstdig */
            --p;
            ++firstdig;         /* advance to next two digits */
        } while (firstdig < p); /* repeat until halfway */
}
char * __cdecl _itoa ( int val, char *buf, int radix )
{
        if (radix == 10 && val < 0)
            xtoa((unsigned long)val, buf, radix, 1);
        else
            xtoa((unsigned long)(unsigned int)val, buf, radix, 0);
        return buf;
}
char * __cdecl _ltoa ( long val, char *buf, int radix )
{
        xtoa((unsigned long)val, buf, radix, (radix == 10 && val < 0));
        return buf;
}

;***************************************************************************************************************
*long atol(char *nptr) - Convert string to long. Overflow is not detected.
long __cdecl _tstol(const _TCHAR *nptr )
{
        int c;              /* current char */
        long total;         /* current total */
        int sign;           /* if '-', then negative, otherwise positive */
        while ( _istspace((int)(_TUCHAR)*nptr) )
                 ++nptr;   /* skip whitespace */

        c = (int)(_TUCHAR)*nptr++;
        sign = c;           /* save sign indication */
        if (c == _T('-') || c == _T('+'))
            c = (int)(_TUCHAR)*nptr++;    /* skip sign */

        total = 0;

        while ( (c = _tchartodigit(c)) != -1 ) {
            total = 10 * total + c;     /* accumulate digit */
            c = (_TUCHAR)*nptr++;    /* get next char */
        }

        if (sign == '-')
            return -total;
        else
            return total;   /* return result, negated if necessary */
}
int __cdecl _tstoi( const _TCHAR *nptr )
{
        return (int)_tstol(nptr);
}

;***************************************************************************************************************
;performs a byteswap on an unsigned integer.
unsigned short __cdecl _byteswap_ushort(unsigned short i)
{
    unsigned short j;
    j =  (i << 8) ;
    j += (i >> 8) ;
    return j;
}
unsigned long __cdecl _byteswap_ulong(unsigned long i)
{
    unsigned int j;
    j =  (i << 24);
    j += (i <<  8) & 0x00FF0000;
    j += (i >>  8) & 0x0000FF00;
    j += (i >> 24);
    return j;
}

;***************************************************************************************************************
*char *bsearch() - do a binary search on an array
*Entry:
*       const char *key    - key to search for const char *base   - base of sorted array to search unsigned int num   - number of *elements in array unsigned int width - number of bytes per element int (*compare)()   - pointer to function that compares two
*array elements, returning neg when #1 < #2, pos when #1 > #2, and 0 when they are equal. Function is passed pointers to two
*array elements.
*Exit:
*       if key is found: returns pointer to occurrence of key in array
*       if key is not found:returns NULL

void * __cdecl bsearch ( REG4 const void *key, const void *base, size_t num, size_t width, int (__cdecl *compare)(const void *, const void *)   )
{
        REG1 char *lo = (char *)base;
        REG2 char *hi = (char *)base + (num - 1) * width;
        REG3 char *mid;
        size_t half;
        int result;

        while (lo <= hi)
                if (half = num / 2)
                {
                        mid = lo + (num & 1 ? half : (half - 1)) * width;
                        if (!(result = (*compare)(key,mid)))
                                return(mid);
                        else if (result < 0)
                        {
                                hi = mid - width;
                                num = num & 1 ? half : half-1;
                        }
                        else    {
                                lo = mid + width;
                                num = half;
                        }
                }
                else if (num)
                        return((*compare)(key,lo) ? NULL : lo);
                else
                        break;

        return(NULL);
}

;***************************************************************************************************************
void __cdecl _tmakepath (register _TSCHAR *path, const _TSCHAR *drive, const _TSCHAR *dir,
const _TSCHAR *fname, const _TSCHAR *ext  )
{
     register const _TSCHAR *p;
     /* copy drive */
     if (drive && *drive) {
                *path++ = *drive;
                *path++ = _T(':');
        }

        /* copy dir */
        if ((p = dir) && *p) {
                do {
                        *path++ = *p++;
                }while (*p);
                if (*(p-1) != _T('/') && *(p-1) != _T('\\')) {
                        *path++ = _T('\\');
                }
        }

        /* copy fname */
        if (p = fname) {
                while (*p) {
                        *path++ = *p++;
                }
        }

        /* copy ext, including 0-terminator - check to see if a '.' needs to be inserted. */
        if (p = ext) {
                if (*p && *p != _T('.')) {
                        *path++ = _T('.');
                }
                while (*path++ = *p++)
                        ;
        }
        else {
                /* better add the 0-terminator */
                *path = _T('\0');
        }
}


posted on 2010-08-23 14:42 eircQ 閱讀(408) 評論(0)  編輯 收藏 引用 所屬分類: Arithmetic
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区不卡免费| 毛片av中文字幕一区二区| 夜夜爽99久久国产综合精品女不卡| 国产精品久久激情| 欧美aⅴ一区二区三区视频| 亚洲在线观看视频| 亚洲深夜影院| 亚洲图色在线| 欧美激情aaaa| 欧美一区二区播放| 欧美一区精品| 一区二区三区四区在线| 国内久久婷婷综合| 国产一区二区三区奇米久涩| 欧美日韩在线播放| 欧美日韩精品欧美日韩精品| 男人的天堂成人在线| 亚洲一区二区欧美| 亚洲精品三级| 欧美黄色一区| 亚洲日本久久| 99视频一区| 亚洲一区精彩视频| 欧美一区二区三区男人的天堂| 亚洲永久免费观看| 久久激情五月丁香伊人| 久久一区亚洲| 欧美日韩一区二区在线观看| 欧美三区免费完整视频在线观看| 国产精品成av人在线视午夜片| 欧美性事免费在线观看| 国产欧美一区二区精品性| 一区在线免费| 亚洲乱码一区二区| 午夜精品视频在线观看一区二区 | 欧美特黄一级大片| 国产精品久久久久久久久免费桃花 | 国产亚洲人成网站在线观看| 亚洲国产精品热久久| 欧美性理论片在线观看片免费| 久久深夜福利| 欧美日产一区二区三区在线观看 | 亚洲国产va精品久久久不卡综合| 亚洲国产欧美一区二区三区同亚洲| 亚洲精品黄网在线观看| 亚洲欧美日韩在线不卡| 久久躁狠狠躁夜夜爽| 久久男女视频| 亚洲高清免费在线| 亚洲一区二区三区四区五区午夜 | 欧美二区在线看| 国产精品一区二区a| 亚洲国产精品电影| 午夜精品福利一区二区蜜股av| 欧美成人精品一区| 亚洲永久精品大片| 欧美久久影院| 亚洲第一福利社区| 午夜日本精品| 亚洲美女中文字幕| 久久夜精品va视频免费观看| 国产精品亚洲美女av网站| 亚洲三级视频| 欧美成人精品一区| 久久精品视频在线观看| 国产精品一区视频| 亚洲一区欧美激情| 亚洲国产高清aⅴ视频| 久久精品人人做人人爽电影蜜月| 欧美午夜电影在线观看| 日韩一区二区久久| 亚洲韩国精品一区| 欧美3dxxxxhd| 亚洲高清色综合| 麻豆国产精品一区二区三区| 午夜激情久久久| 国产精品毛片高清在线完整版 | 亚洲日本无吗高清不卡| 久久色中文字幕| 亚洲婷婷在线| 国产精品一区毛片| 欧美一区二区免费观在线| 亚洲一区日韩在线| 国产精品系列在线| 欧美一区二区观看视频| 亚洲免费中文| 国产欧美日韩亚洲| 在线免费观看日本欧美| 欧美精品一区在线| 亚洲福利视频网站| 另类春色校园亚洲| 久久九九全国免费精品观看| 国模大胆一区二区三区| 久久亚洲春色中文字幕| 久久香蕉国产线看观看网| 在线观看中文字幕亚洲| 欧美电影电视剧在线观看| 久久综合九色综合久99| 亚洲精品日韩在线| 亚洲日韩第九十九页| 欧美日韩在线电影| 午夜伦理片一区| 久久精品一区四区| 亚洲国产成人在线| 99国产精品私拍| 国产视频精品网| 免费观看成人鲁鲁鲁鲁鲁视频| 久热精品在线视频| 一个色综合av| 午夜视频在线观看一区| 极品少妇一区二区三区精品视频| 久久久不卡网国产精品一区| 亚洲国产精品视频一区| 一区二区国产精品| 狠狠入ady亚洲精品| 亚洲激情综合| 国产视频一区在线观看| 欧美高清视频在线观看| 久久久久久久综合| 国产精品婷婷| 美玉足脚交一区二区三区图片| 欧美精品偷拍| 久久精品一区二区三区中文字幕| 欧美高清在线一区| 久久久久国内| 欧美另类女人| 久久久综合精品| 国产精品电影在线观看| 欧美大片在线观看| 国产欧美日韩在线观看| 亚洲第一天堂av| 国产自产在线视频一区| 一本色道88久久加勒比精品| 在线成人黄色| 亚洲欧美在线网| 亚洲伊人一本大道中文字幕| 欧美fxxxxxx另类| 玖玖精品视频| 国产色综合网| 亚洲欧美韩国| 亚洲欧美中文日韩v在线观看| 午夜电影亚洲| 一区二区欧美日韩视频| 久久夜色精品一区| 久久久久久亚洲精品不卡4k岛国| 国产精品va在线| 亚洲免费福利视频| 99精品国产一区二区青青牛奶| 久久先锋资源| 欧美va亚洲va香蕉在线| 国内成人在线| 欧美一区二区三区的| 久久天天躁夜夜躁狠狠躁2022| 一二三区精品| 欧美日韩在线一二三| 亚洲理伦在线| 亚洲专区国产精品| 午夜精品国产更新| 欧美wwwwww| 欧美在线观看你懂的| 99伊人成综合| 亚洲丁香婷深爱综合| 欧美xart系列高清| 午夜欧美精品久久久久久久| 在线免费观看视频一区| 欧美日韩不卡视频| 欧美亚洲在线视频| 国产精品看片你懂得| 麻豆亚洲精品| 久久久亚洲人| 欧美日韩一区二区在线观看视频| 美女久久网站| 欧美精品v日韩精品v国产精品| 乱人伦精品视频在线观看| 激情亚洲一区二区三区四区| 欧美一区国产二区| 午夜电影亚洲| 亚洲视频精选| 麻豆亚洲精品| 亚洲国产女人aaa毛片在线| 韩国视频理论视频久久| 国产日韩视频一区二区三区| 欧美成人精品高清在线播放| 久久天天躁狠狠躁夜夜av| 伊人久久大香线| 夜夜爽99久久国产综合精品女不卡| 久久人91精品久久久久久不卡 | 国产欧美精品日韩精品| 国产最新精品精品你懂的| 欧美一区二粉嫩精品国产一线天| 校园春色综合网| 欧美日韩大片| 欧美在线观看一区二区| 一区二区三区欧美成人| 亚洲一区二区视频| 国产真实乱子伦精品视频| 欧美日韩免费高清| 亚洲一区二区三区成人在线视频精品| 一区二区三区.www| 久久久久久亚洲精品杨幂换脸|