指针改写string 函数族
int my_strlen(const char* str)
{
const char* p = str;
while (*p != '\0') // 查找字符串结束符
{
p++;
}
return (int)(p - str); // 返回长度
}
char* my_strcmp(char* str1, char* str2)
{
int len1 = my_strlen(str1);
int len2 = my_strlen(str2);
int i = 0;
while (i < len1 && i < len2)
{
if (str1[i] != str2[i])
{
return str1[i] - str2[i];
}
i++;
}
if (len1 == len2)
{
return 0;
}
else if (len1 < len2)
{
return -1;
}
else
{
return 1;
}
}
char* my_strcpy(char* str1, char* str2)
{
int len = my_strlen(str2);
for (int i = 0; i < len; i++)
{
str1[i] = str2[i];
}
str1[len] = '\0';
return str1;
}
char* my_strcat(char* str1, char* str2)
{
int len1 = my_strlen(str1);
int len2 = my_strlen(str2);
for (int i = 0; i < len2; i++)
{
str1[len1 + i] = str2[i];
}
str1[len1 + len2] = '\0';
return str1;
}