目前所编写到的,所能简化的最终版(如有不合适的地方,欢迎指正):
strlen:
int my_strlen(char *src){
int len = 0;
while (*src++){
len++;
}
return len;
}
strcpy:
char *my_strcpy(char *dest, const char *src) {
char *ret = dest;
while (*dest = *src) {
dest++; src++;
}
return ret;
}
strcat:
char *my_strcat(char *dest, const char *src){
assert(strlen(dest) < strlen(src));
int len = strlen(dest), i = 0;
while (*(dest + len + i) = *(src + i)){
i++;
}
return dest;
}
strstr:
char *my_strstr(const char *string, const char *search){
while (*string){
int i = 0;
while (*(string + i) == *(search + i)){
i++;
if (*(search + i) == 0)return string;
}
string++;
}
return 0;
}