C函数实现strcopy strcat strcmp strstr
strcopy函数
char *strcpy( char *strDestination, const char *strSource );
复制字符串函数的实现
char* my_strcopy(char* dest, char* src)
{char* ret = dest;while (*src){*dest++ = *src++;}*dest = *src;return ret;
}int main() {char arr[] = "abcdef";char arr1[20] = { 20 };my_strcopy(arr1, arr);printf("%s", arr1);return 0;
}
strcat函数
合并字符串
char *strcat( char *strDestination, const char *strSource );
char my_strcat(char* dest, const char* src)
{char ret=dest;while (*dest!='\0'){dest++;}while (*dest++=*src++){;}return ret;
}
int main()
{char arr[30] = "hellow";char arr1[] = "world";my_strcat(arr, arr1);printf("%s ", arr);return 0;
}
strcmp函数
比较字符串
int strcmp( const char *string1, const char *string2 );
char my_strcmp(char* str1, char* str2)
{while (*str1==*str2){if (*str1 == '\0')return 0;str1++;str2++;
}return (*str1 - *str2);
}
int main()
{char a[] = "abcd";char b[] = "abcd";int ret =my_strcmp(a, b);if (ret<0){printf("<");}else if (ret > 0){printf(">");}else{printf("==");}return 0;
}
strstr函数
在a里面查找b
char *strstr( const char *string, const char *strCharSet );
char* my_strstr(const char* str1, const char* str2)
{const char* s1 = str1;const char* s2 = str2;const char* p = str1;while (*p){s1=p;s2 = str2;while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2){s1++;s2++;}if (*s2=='\0'){return (char*)p;}p++;}return NULL;
}
int main()
{char arr[] = "abcbbc";char arr1[] = "bbc";char* ret = my_strstr(arr, arr1);if (ret==NULL){printf("不存在\n");}else{printf("%s", ret);}return 0;
}