您的位置:首页 > 其它

字符串操作函数实现strcpy() strcmp()...

2017-09-29 15:46 344 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐