strcpy/strlen/strcat/strcmp的C实现
作者:
TheXX
,
2022-08-06 15:42:52
,
所有人可见
,
阅读 218
#include <assert.h>
char* strcpy(char* dst, const char* src)
{
assert(dst != NULL && src != NULL);
char* res = dst;
while ((*dst++ = *src++) != '\0');
return res;
}
int strlen(char* str)
{
assert(str != NULL);
int len = 0;
while ((*str++) != '\0')
++len;
return len;
}
int strcmp(const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while (*s1 == *s2) {
if (*s1 == '\0')
return 0;
s1++, s2++;
}
return *s1 - *s2;
}
char* strcat(char* dst, const char* src)
{
assert(dst != NULL && src != NULL);
char* res = dst;
while (*dst != '\0')
++dst;
while (*dst++ = *src++);
return res;
}
%%% 我学c++ 不理解
assert
是什么东西就是有很多宏定义的头文件,可以用来检查错误。