//strcpy源字符串必须以 ‘\0’ 结束。
//会将源字符串中的 ‘\0’ 拷贝到目标空间。
//目标空间必须足够大,以确保能存放源字符串。
//目标空间必须可变。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strcpy1(char* des, const char* sourse)
{
char* ret = des;
assert(des&&sourse);
while (*sourse)
{
*des++=* sourse++;
}
*des = *sourse;
return ret;
}
char* my_strcpy2(char* des, const char* sourse)
{
char* ret = des;
assert(des&&sourse);
do
{
*des++ = *sourse;//*des=*sourse; des++;
} while (*sourse++);
return ret;
}
char *my_strcpy3(char *dest, const char*src)
{
char *ret = dest;
assert(dest != NULL);
assert(src != NULL);
while ((*dest++ = *src++))
{
;
}
return ret;
}
int main()
{
char string1[] = "hello";
char string2[100] ;
printf("%s\n", my_strcpy1(string2, string1));
printf("%s\n", my_strcpy2(string2, string1));
printf("%s\n", my_strcpy3(string2, string1));
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
char *my_strcat(char *dest, const char*src)
{
char *ret = dest;
assert(dest&&src);
while (*dest)
{
dest++;
}
while ((*dest++ = *src++))
{
;
}
return ret;
}
int main()
{
char string1[] = "hello";
char string2[100]="world" ;
printf("%s\n", my_strcat(string2, string1));
return 0;
}