模拟实现strcpy
(strcpy)
#include <stdio.h>
#include <windows.h>
#include <assert.h>
char *my_strcpy(char *dst, const char* src)
{
assert(dst);
assert(src);
char *ret = dst;
while (*dst++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr1[] = "hello world!";
char arr2[32];
my_strcpy(arr2, arr1);
printf("%s\n", arr2);
system("pause");
return 0;
}
模拟实现strcat
(strcat)
#include <stdio.h>
#include <assert.h>
char *my_strcat(char *dst, const char*src)
{
assert(dst);
assert(src);
char *ret = dst;
while (*dst)
{
dst++;
}
while (*dst=*src)
{
dst++;
src++;
}
return ret;
}
int main()
{
char arr1[32] = "hello";
char arr2 = "123";
my_strcat(arr1,arr2);
printf("%s", arr1);
system("pause");
return 0;
}
模拟实现strcmp
#include <stdio.h>
#include <assert.h>
#include <windows.h>
int my_strcmp(const unsigned char *str1, const unsigned char *str2)
{
assert(str1);
assert(str2);
while (*str1 && *str2)
{
if (*str1 == *str2)
{
str1++;
str2++;
}
else if (*str1 > *str2)
{
return 1;
}
else
{
return -1;
}
}
if (*str1)
{
return 1;
}
else if (*str2)
{
return -1;
}
else
{
return 0;
}
}
int main()
{
char str1[] = "abc";
char str2[] = "xyz";
int ret = my_strcmp(str1, str2);
printf("%d", ret);
system("pause");
return 0;
}