字符串自实现(一)(mystrcpy,mystrcat,mystrcmp)
char* mystrcpy(char* str_one,const char* str_two) { char* tmp = str_one; while (*str_one++ = *str_two++)return tmp; } char* mystrcat(char* str_one,const char* str_two) { char* tmp = str_one; while (*str_one)str_one++; while (*str_one++ = *str_two++)return tmp; } //1-7为逐渐优化过程 int mystrcmp1(const char* str_one,const char* str_two) { while (*str_one != '\0'&&*str_two != '\0') { if (*str_one > *str_two) { return 1; } else if (*str_one < *str_two) { return -1; } else { str_one++; str_two++; } } if (*str_one != '\0'&&*str_two == '\0') { return 1; } else if (*str_one == '\0'&&*str_two != '\0') { return -1; } else { return 0; } } int mystrcmp2(const char* str_one, const char* str_two) { while (*str_one != '\0'&&*str_two != '\0') { if (*str_one != *str_two) { return *str_one - *str_two; } else { str_one++; str_two++; } } return *str_one - *str_two; } int mystrcmp3(const char* str_one, const char* str_two) { while (*str_one != '\0'&&*str_two != '\0') { if (*str_one != *str_two) { break; } else { str_one++; str_two++; } } return *str_one - *str_two; } int mystrcmp4(const char* str_one, const char* str_two) { for (;*str_one != '\0'&&*str_two != '\0';str_one++,str_two++) { if (*str_one != *str_two) { break; } } return *str_one - *str_two; } int mystrcmp5(const char* str_one, const char* str_two) { for (; *str_one&&*str_two; str_one++, str_two++) if (*str_one != *str_two) break; return *str_one - *str_two; } int mystrcmp6(const char* str_one, const char* str_two) { for (; (*str_one&&*str_two) && (*str_one == *str_two); str_one++, str_two++); return *str_one - *str_two; } int mystrcmp7(const char* str_one, const char* str_two) { for (; (*str_one&&*str_two) && (*str_one++ == *str_two++);); return *str_one - *str_two; }