my_strcpy所实现的功能是将所给字符串拷贝到目标字符串的过程,通过指针一一向后指进行实现,但是在此过程中默认的要拷贝的字符串在目标字符串内是可以放下的。
char * my_strcpy(char *str,char *cmp)
{
char* ret=str;
while (*cmp!='\0')
{
*str = *cmp;
str++;
cmp++;
}
*str='\0';
return ret;
}
my_strcat所实现的功能是将所给字符串连接到目标字符串的后面,而在此过程中需要注意的是'\0'需要在遇到目标字符串的'\0'位置时,将要连接的字符串首元素放到'\0'位置。在连接完成后,需要添加'\0'.
char * my_strcat(char *str,char *cmp)
{
char *ret=str;
while (*str!='\0')
{
str++;
}
while(*cmp!='\0')
{
*str = *cmp;
cmp++;
str++;
}
*str='\0';
return ret;
}
my_strcmp函数所实现的功能是对两个字符串进行比较.
int my_strcmp(char *str,char *cmp)
{
while(*str==*cmp)
{
if( str != '\0' )
{
str++;
cmp++;
}
else
return 0;
}
if( *str > *cmp )
return 1;
else
return -1;
}
my_strlen函数实现的是计算字符串的长度,不包括'\0'在内。它所作的仅仅是一个计数器的工作。
int my_strlen(char *str)
{
int count = 0;
while(*str!='\0')
{
str++;
count++;
}
return count;
}
主程序:
int main()
{
char a[10]={0};
char b[]="bit-tech";
char c[]="hello-kitty";
printf("%s\n",my_strcpy(a,b));
printf("%s\n",my_strcat(b,c));
printf("%d\n",my_strcmp(b,c));
printf("%d\n",my_strlen(c));
getchar();
return 0;
}
运行后,结果如下;