strcpy() 复制字符串
char* my_strcpy(char* str1, const char* str2)
{
char* ret = str1;
assert(str1 != NULL);
assert(src != NULL);
while ((*str1++ = *str2++) != '\0')
{
;
}
return ret;
}
strcat() 添加字符串
char* my_strcat(char *str1, char *str2)
{
char* ret = str1;
assert(dest != NULL);
assert(src != NULL);
while (*str1 != '\0') str1++;
while (*str2 != '\0') *str1++ = *str2++;
*str1 = '\0';
return ret;
}
strcmp() 字符串比较
int strcmp(const char *str1, const char *str2)
{
assert(str1 != NULL);
assert(str2 != NULL);
while ((*str1 == *str2) && (*str1 != '\0'))
{
str1++;
str2++;
}
return *str1 - *str2;
}
strlen() 字符串求长度
int my_strlen(const char*str)
{
int count = 0;
assert(str != NULL);
while (*str++ != '\0')
{
count++;
}
return count;
}
strncpy() 复制指定长度字符串
char* my_strncpy(char* dest, const char* src, int len)
{
assert(dest);
assert(src);
char* temp = dest;
int i = 0;
while (i++ < len && (*temp++ = *src++) != '\0')
{
}
return dest;
}
strncmp() 比较指定长度字符串
int my_strncmp(const char *s1, const char *s2, int n)
{
assert(s1);
assert(s2);
while (*s1 != '\0'&&*s2 != '\0'&&n)
{
if (*s1 - *s2>0)
return 1;
if (*s1 - *s2<0)
return -1;
s1++;
s2++;
n--;
}
if (*s1 == '\0'&&*s2 != '\0')
return -1;
if (*s2 == '\0'&&*s1 != '\0')
return 1;
return 0;
}
strncat() 添加指定长度字符串
char *my_strncat(char *dest, const char *str, int n)
{
assert(dest);
assert(str);
char *cp = dest;
while (*++cp != '\0')
{
}
while (--n && (*cp++ = *str++) != '\0')
{
}
return dest;
}