strlen函数:计算字符串sting的长度,并返回字符串string的长度,遇到‘\0’停止。
函数实现:
#include <assert.h>
#include <stdio.h>
int my_strlen(const char* str)
{
assert(str);
int count = 0;
while(*str!= '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char a[] = "abc\0derg";
int len = my_strlen(a);
printf("%d", len);
return 0;
}
strcpy函数:是将一个字符串复制到另一块空间地址中 的函数,‘\0’是停止拷贝的终止条件,同时也会将 '\0' 也复制到目标空间。
函数实现:
#include <assert.h>
#include <stdio.h>
void my_strcpy(char* destination, const char* src)//源头拷贝到目的地
{
assert(destination && src);
while (*destination++ = *src++)
{
;
}
}
int main()
{
char arr1[10] = "大佬";
char arr2[10] = "菜鸡";
my_strcpy(arr2, arr1);
printf("%s", arr2);
return 0;
}
strcat函数:又被称为是字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串。
函数实现:
#include <stdio.h>
#include <assert.h>
char* my_strcat(char* dest,const char* src)
{
char* ret = dest;//保存目标地址源头
assert(dest && src);
while (*dest != '\0')//找到目标空间中的\0
{
dest++;
}
while (*dest++ = *src++)//拷贝 需要将\0一同拷贝进去
{
;
}
return ret; //返回起始目标地址
}
int main()
{
char arr1[40] = "我从一个rubbish";
char arr2[40] = "到一个Study god";
my_strcat(arr1, arr2);
printf("%s", arr1);
return 0;
}