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