【无标题】

1.字符串函数

1.1 strlen函数

cplusplus官方描述: link

size_t strlen ( const char * str );

strelen函数用来计算字符串中字符个数,以"\0"作为计算结束的标志,依次我们可以仿写函数如下:

int my_strlen(char* arr)
{
	int ret = 0;
	assert(arr);
	while (*arr)
	{
		arr++;
		ret++;
	}
	return ret;
}`

1.2 strncpy函数

cplusplus官方描述: link

char * strncpy ( char * destination, const char * source, size_t num );

strncpy函数是拷贝num个字符从源字符串到目标空间,我们仿写如下:

char* my_strncpy(char* strDest, const char* strSource, size_t count)

{

	char* ret = strDest;

	while (count)

	{

		*strDest = *strSource;

		strDest++;

		strSource++;

		count--;

	}

	return ret;

}

1.3 strcmp函数

cplusplus官方描述: link

int strcmp ( const char * str1, const char * str2 );

strcmp函数是比较str1字符串与str2字符串哪边的字符比较大,从开始到结束,按照ASCII码大小进行比较,返回一个整数。若完全想等,则返回0;若某个字符较大就返回一个大于0的正数;若某个字符较小就返回一个小于0的负数。仿写如下:

int my_strcmp(const char* str1, const char* str2)

{

 //判断str1与str2是否为空指针

	assert(str1);

	assert(str2);

	int ret = 0;

	while (*str1 == *str2)

	{

		if (*str1 == '\0')

			return 0;

		str1++;

		str2++;

	}

	return *str1 - *str2;



}

1.4 strstr 函数

cplusplus官方描述: link

const char * strstr ( const char * str1, const char * str2 );
      char * strstr (       char * str1, const char * str2 );

strstr是一个起寻找功能的函数。在str1寻找str2中的字符串,若找得到,则返回str1中str2字符串中的开始编号。仿写如下;

char* my_strstr(const char* str1, const char* str2)

{

	char* cp = str1;

	char *s1, *s2;

	//如果s2=0则直接返回str1的地址

	if (!*str2)

		return str1;



	//从开始位置进行检索

	while (*cp)

	{

		s1 = cp;

		s2 = (char*)str2;

		while (*s1 && *s2 && !(*s1 - *s2))

			s1++, s2++;

		if (!*s2)

			return cp;

		cp++;

	}

	return (NULL);

}

1.5 strncat函数

cplusplus官方描述: link

char * strncat ( char * destination, const char * source, size_t num );

strncat函数是一个起一个追加功能的函数。将strSource中的内容追加count个给strDest中。我们仿写如下:

char* my_strncat(char* strDest, const char* strSource, size_t count)

{

	char* ret = strDest;

	while(*strDest)

	{

		strDest++;

	}

	while (count--)

	{

		*strDest = *strSource;

		strDest++;

		strSource++;

	}

	return ret;

}

2. 内存函数

2.1 memcpy函数

cplusplus官网描述: link

void * memcpy ( void * destination, const void * source, size_t num )

memcpy函数是一个函数。从source的位置开始向后复制num个字节的数据到destination指向的内存位置。注意这是一个内存函数,是直接在内存上操作的函数。我们仿写如下:

void* my_memcpy(void* dest, const void* src, size_t count)

{

	void* ret = dest;

	assert(dest && src);

	while (count--)

	{

		*(char*)dest = *(char*)src;

		dest = (char*)dest + 1;

		src = (char*)src + 1;

	}

	return ret;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值