面试时,有时候经常会手撕一下源码,之前被考过一个strcpy,所以在此吧把str型都实现一遍。
char* mystrcpy(char* dest, const char* src)
{
assert((dest==nullptr)||(src==nullptr));
char* s=src;
while(*src)
{
*dest++=*src++;
}
*dest='\0';
return s;
}
char* mystrcat(char* dest, char* arr)
{
assert((arr==nullptr)||(src==nullptr));
char* s=dest;
while(*dest)
{
dest++;
}
while(*arr)
{
*dest++=*arr++;
}
*dest='\0';
return s;
}
int mystrcmp(const char* dest, const char* src)
{
assert((dest==nullptr)||(src==nullptr));
while(*dest || *src)
{
if(*dest > *src)
{
return 1;
}
else if(*dest < *src)
{
return -1;
}
else
{
dest++;
src++;
}
return 0;
}
}
int strlen(const char* src)
{
assert(src==nullptr);
int len=0;
while(*src)
{
len++;
}
return len;
}