实现strlen strcat 用 do while ,while

//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;

}
发布了24 篇原创文章 · 获赞 1 · 访问量 382

猜你喜欢

转载自blog.csdn.net/weixin_43519514/article/details/102668563