实现strlen
实现strcmp
实现strcpy
实现strcat
实现strchr
实现strstr
实现strlen
int strlen(char* str1)
{
if (*str1 == NULL)
{
printf("输入字符串有误\n");
return NULL;
}
int i = 0;
while (str1[i++] != '\0')
{
;
}
return --i;
}
实现strcmp
int strcmp(char* str1, char* str2)
{
while (1)
{
if (*str1 == '\0'|| *str2 == '\0')
return 0;
int i = 0;
if (str1 != str2)
{
return str1[i] - str2[i];
}
i++;
}
}
实现strcpy
char *strcpy(char* str1,const char* str2)
{
if (*str1 == NULL || *str2 == NULL)
{
printf("输入字符串有误\n");
return NULL;
}
int i = 0;
while (1)
{
str1[i]= str2[i];
if (str1[i++] == '\0')
break;
}
return str1;
}
实现strcat
char *strcat(char* str1, const char* str2)
{
if (*str1 == NULL || *str2 == NULL)
{
printf("输入字符串有误\n");
return NULL;
}
int i = 0, j = 0;
while (str1[i++] != '\0')
{
;
}
i--;
while (str1[j] != '\0')
{
str1[i+j] = str2[j];
j++;
}
return str1;
}
实现strchr
char* strchr(char *str1, char ch)
{
while (*str1 != '\0' && *str1 != ch)
{
++str1;
}
return *str1 == ch ? str1 : NULL;
}
实现strstr
char* strstr(char *str1, char *str2)
{
int n = strlen(str2);
for (; *str1 != 0; ++str1) {
if (strncmp(str1, str2, n) == 0) {
return (char*)str1;
}
}
return NULL;
}