A
B
C
D
E
F
G
H
I
G
K
L
M
memcpy()
函数原型:void* memcpy(void* dest, void* source, size_t count)
- 实现1:
void* memcpy(void* dest, void* source, size_t count)
{
char *ret = (char *)dest;
char *dest_t = ret;
char *source_t = (char *)source;
while (count--){
*dest_t++ = *source_t++;
}
return ret;
}
memmove()
函数原型:void *memmove(void *dst,const void *src,int count)
- 实现1:
void *memmove(void *dst,const void *src,int count)
{
char *ret;
char *dst_t;
char *src_t;
ret = (char *)dst;
if ((unsigned char*)dst <= (unsigned char*)src|| (unsigned char *)dst >= ((unsigned char *)src + count))
{
dst_t = (char *)dst;
src_t = (char *)src;
while (count--)
{
*dst_t++ = *src_t++;
}
}
else
{
dst_t = (char *)dst + count - 1;
src_t = (char *)src + count - 1;
while (count--)
{
*dst_t-- = *src_t--;
}
}
return(ret);
}
N
O
P
Q
R
S
strcat()
函数原型:char* strcat ( char * dst , const char * src )
- 实现1:
char* strcat ( char * dst , const char * src )
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while(*src!='\0')
{
*cp++=*src++;
}
*cp='\0';
return dst; /* return dst */
}
strcmp()
函数原型:int strcmp(const char* str1, const char* str2)
- 实现1:
int strcmp(const char* str1, const char* str2)
{
int ret = 0;
while(!(ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1)
{
str1++;
str2++
}
if (ret < 0)
{
return -1;
}
else if (ret > 0)
{
return 1;
}
return 0;
}
strcpy()
函数原型:char *strcpy(char* dest, const char *src)
头文件:#include <string.h>
- 实现1:
char *strcpy(char* dest, const char *src)
{
assert((dest!=NULL)&&(src!=NULL));
char* cp=dest;
while(*src!='\0')
{
*dest=*src;
src++;
dest++;
}
*dest='\0';
return cp;
}
strstr()
函数原型:char *strstr( const char *s1, const char *s2 )
头文件:#include <string.h>
- 实现1:
char *strstr(const char *s1, const char *s2)
{
int n;
if (*s2)
{
while (*s1)
{
for (n=0; *(s1 + n) == *(s2 + n); n++)
{
if (!*(s2 + n + 1))
return (char *)s1;
}
s1++;
}
return NULL;
}
else
return (char *)s1;
}
T
U
V
W
X
Y
Z