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