函数strcpy、strcat和strcmp实现源码

    技术2022-05-20  66

    前两天在codeproject挖坟时找到的......

    view plaincopy to clipboardprint?/************************************************************************ *char *strcpy(dst, src) - copy one string over another * *Purpose: * Copies the string src into the spot specified by * dest; assumes enough room. * *Entry: * char * dst - string over which "src" is to be copied * const char * src - string to be copied over "dst" * *Exit: * The address of "dst" * *Exceptions: ************************************************************************/ char* strcpy(char * dst, const char * src)   {       char * cp = dst;       while( *cp++ = *src++ )           ;                           /* Copy src over dst */     return( dst );   }   /************************************************************************ *char *strcat(dst, src) - concatenate (append) one string to another * *Purpose: * Concatenates src onto the end of dest. Assumes enough * space in dest. * *Entry: * char *dst - string to which "src" is to be appended * const char *src - string to be appended to the end of "dst" * *Exit: * The address of "dst" * *Exceptions: * ************************************************************************/ char* strcat ( char * dst , const char * src )   {       char * cp = dst;       while( *cp )           cp++;                       /* find end of dst */     while( *cp++ = *src++ ) ;       /* Copy src to end of dst */     return( dst );                  /* return dst */ }   /************************************************************************ *strcmp - compare two strings, returning less than, equal to, or greater than * *Purpose: * STRCMP compares two strings and returns an integer * to indicate whether the first is less than the second, the two are * equal, or whether the first is greater than the second. * * Comparison is done byte by byte on an UNSIGNED basis, which is to * say that Null (0) is less than any other character (1-255). * *Entry: * const char * src - string for left-hand side of comparison * const char * dst - string for right-hand side of comparison * *Exit: * returns -1 if src < dst * returns 0 if src == dst * returns +1 if src > dst * *Exceptions: * ************************************************************************/ int strcmp ( const char* src, const char* dst )   {       int ret = 0 ;       while( !(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)           ++src, ++dst;       if ( ret < 0 )           ret = -1 ;       else if ( ret > 0 )           ret = 1 ;       return( ret );   }

     

    本文来自博客,转载请标明出处:http://blog.csdn.net/wangningyu/archive/2009/10/13/4662891.aspx


    最新回复(0)