字符串处理函数
strlen、strcpy、strcmp、strcat
#include <stdio.h>
#include <assert.h>
size_t str_len(const char* str)
{
//if(NULL==str) return 0;
assert(NULL != str);
const char* tmp = str;
while(*tmp) tmp++;
return tmp - str;
}
char* str_cpy(char* dest, const char* src)
{
assert(NULL != dest && NULL != src);
char* tmp = dest;
while(*tmp++ = *src++);
return dest;
}
char* str_cat(char *dest, const char *src)
{
assert(NULL != dest && NULL != src);
char* tmp = dest;
while(*tmp) tmp++;
while(*tmp++ = *src++);
return dest;
}
int str_cmp(const char *s1, const char *s2)
{
assert(NULL != s1 && NULL != s2);
while(*s1 && *s1 == *s2) s1++,s2++;
//return *s1 - *s2;
if(*s1 > *s2)
return 1;
else if(*s1 < *s2)
return -1;
return 0;
}
int main(int argc,const char* argv[])
{
char str[256] = "heheha";
printf("str_len: %d\n",str_len(NULL));
printf("str_cpy: %s\n",str_cpy(str,"a"));
printf("str_cat: %s\n",str_cat(str,"bbbb"));
printf("str_cmp: %d\n",str_cmp(str,"aebbb"));
}