欢迎光临
我们一直在努力

【C深度剖析】自实现 strcmp strlen strcpy strcat

int str_cmp(const char *s1,const char *s2)
{
	int ret;
	while(!(ret = *(unsigned char *)s1 - *(unsigned char *)s2) && s2++)
	  s1++,s2++;
	if(ret > 0)
		ret = 1;
	else if(ret <0)
	  ret = -1;

	return ret;
}

int str_len(const char *s)
{
	assert(s != 0);
	char *start = s;
	while(*s++);
	return (s - start - 1);
}

char* str_cpy(char *dest,char *src)
{
	assert( (dest != 0) && (src != 0));
	char* ret = dest;
	while(*src)
	  *dest++ = *src++;
	*dest = '\0';
	return ret;
}

char* str_cat(char *dest,char *src)
{
	assert((dest != 0) && (src != 0));
	char *ret = dest;
	while(*dest)
	  dest++;
	while(*src)
	  *dest++ = *src++;
	*dest = '\0';
	return ret;
}

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。