文章标题 原创 翻译 转载 文章内容 ``` ////////////////////memcpy///////////////////////// void * __cdecl memcpy ( void * dst, const void * src, size_t count ) { void * ret = dst; while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } return(ret); } /////////////////////memset///////////////// void * __cdecl memset ( void *dst, int val, size_t count ) { void *start = dst; while (count--) { *(char *)dst = (char)val; dst = (char *)dst + 1; } return(start); } ///////////////////////strcat////////////////// char * __cdecl 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 */ } ///////////////////////strcpy////////////////////// char * __cdecl strcpy(char * dst, const char * src) { char * cp = dst; while( *cp++ = *src++ ) ; /* Copy src over dst */ return( dst ); } /////////////////////////strchr//////////////////////////// char * __cdecl strchr ( const char * string, int ch ) { while (*string && *string != (char)ch) string++; if (*string == (char)ch) return((char *)string); return(NULL); } ///////////////////////strcmp////////////////////////// int __cdecl 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 ); } ///////////////////////strlen///////////////////////// size_t __cdecl strlen ( const char * str ) { const char *eos = str; while( *eos++ ) ; return( (int)(eos - str - 1) ); } //////////////////////strncat////////////////////////// char * __cdecl strncat ( char * front, const char * back, size_t count ) { char *start = front; while (*front++) ; front--; while (count--) if (!(*front++ = *back++)) return(start); *front = '\0'; return(start); } /////////////////////////strncmp////////////////////////// int __cdecl strncmp ( const char * first, const char * last, size_t count ) { if (!count) return(0); while (--count && *first && *first == *last) { first++; last++; } return( *(unsigned char *)first - *(unsigned char *)last ); } //////////////////////////strncpy///////////////////////////// char * __cdecl strncpy ( char * dest, const char * source, size_t count ) { char *start = dest; while (count && (*dest++ = *source++)) /* copy string */ count--; if (count) /* pad out with zeroes */ while (--count) *dest++ = '\0'; return(start); } ////////////////////////////strnset////////////////////////////// char * __cdecl _strnset ( char * string, int val, size_t count ) { char *start = string; while (count-- && *string) *string++ = (char)val; return(start); } ///////////////////////////strset////////////////////// char * __cdecl _strset ( char * string, int val ) { char *start = string; while (*string) *string++ = (char)val; return(start); } ////////////////////////strrchr/////////////////////// char * __cdecl strrchr ( const char * string, int ch ) { char *start = (char *)string; while (*string++) /* find end of string */ ; /* search towards front */ while (--string != start && *string != (char)ch) ; if (*string == (char)ch) /* char found ? */ return( (char *)string ); return(NULL); } //////////////////////////strrev//////////////////////// char * __cdecl _strrev ( char * string ) { char *start = string; char *left = string; char ch; while (*string++) /* find end of string */ ; string -= 2; while (left < string) { ch = *left; *left++ = *string; *string-- = ch; } return(start); } ////////////////////////////strstr//////////////////////////// char * __cdecl strstr ( const char * str1, const char * str2 ) { char *cp = (char *) str1; 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); cp++; } return(NULL); } ``` 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交