- 首页 > it技术 > >
常用库函数strcpy,strcmp,strcat,memset,memcpy,memcmp原型
char *strcpy(char *dest, const char *src)
{
unsigned i;
for (i=0;
src[i] != '\0';
++i)
dest[i] = src[i];
//Ensure trailing null byte is copied
dest[i]= '\0';
return dest;
}char *strcpy(char *dest, const char *src)
{
char *save = dest;
while(*dest++ = *src++);
return save;
}int strcmp (const char * s1, const char * s2)
{
for(;
*s1 == *s2;
++s1, ++s2)
if(*s1 == 0)
return 0;
return *(unsigned char *)s1 < *(unsigned char *)s2 ? -1 : 1;
}char * strcat(char *dest, const char *src)
{
size_t i,j;
for (i = 0;
dest[i] != '\0';
i++)
;
for (j = 0;
src[j] != '\0';
j++)
dest[i+j] = src[j];
dest[i+j] = '\0';
return dest;
}void *memset(void *s, int c, size_t n)
{/* store c throughout unsigned char s[n] */
const unsigned char uc = (unsigned char)c;
unsigned char *su = (unsigned char *)s;
for (;
0 < n;
++su, --n)
*su = uc;
return (s);
}void *memcpy(void *s1, const void *s2, size_t n)
{/* copy char s2[n] to s1[n] in any order */
char *su1 = (char *)s1;
const char *su2 = (const char *)s2;
for (;
0 < n;
++su1, ++su2, --n)
*su1 = *su2;
return (s1);
}int memcmp(const void *s1, const void *s2, size_t n)
{/* compare unsigned char s1[n], s2[n] */
const unsigned char *su1 = (const unsigned char *)s1;
const unsigned char *su2 = (const unsigned char *)s2;
for (;
0 < n;
++su1, ++su2, --n)
if (*su1 != *su2)
return (*su1 < *su2 ? -1 : +1);
return (0);
}
推荐阅读