char *strcpy(char *dest, const char *src) //src复制到dest
{
char *tmp = dest;
while ((*dest++ = *src++) != '\0')
;
return tmp;
}
char *strcat(char *dest, const char *src) //src 连接到dest
{
char *tmp = dest;
while (*dest)
dest++;
while ((*dest++ = *src++) != '\0')
;
return tmp;
}
int strcmp(const char *cs, const char *ct) //比较两个字符串大小
{
unsigned char c1, c2;
while (1) {
c1 = *cs++;
c2 = *ct++;
if (c1 != c2)
return c1 < c2 ? -1 : 1;
if (!c1)
break;
}
return 0;
}
char *strchr(const char *s, int c) //查找字符串s中首次出现字符c的位置
{
for (; *s != (char)c; ++s)
if (*s == '\0')
return NULL;
return (char *)s;
}
size_t strlen(const char *s) //字符串长度
{
const char *sc;
for (sc = s; *sc != '\0'; ++sc)
/* nothing */;
return sc - s;
}
void *memset(void *s, int c, size_t count) //将已开辟内存空间 s 的首 count个字节的值设为值 c
{
char *xs = s;
while (count--)
*xs++ = c;
return s;
}
void *memcpy(void *dest, const void *src, size_t count) //由src指向地址为起始地址的连续count个字节的数据复制到以dest指向地址为起始地址的空间内
{
char *tmp = dest;
const char *s = src;
while (count--)
*tmp++ = *s++;
return dest;
}