1.关于strncpy函数的介绍与模拟实现
这个函数是c语言的拷贝函数,用于复制字符串,它的功能是将字符串前num个字符复制到目标字符串中。该函数需要包含头文件 #include<string.h>
strncpy的模拟实现代码实现如下:
这个代码定义了一个源头字符串src和一个目标字符串dest,用strncpy函数将src所需要的字符复制过去来到达我们所想要的结果。
2.strncat的介绍与模拟实现
这是字符追加函数,用与字符串的追加后面的字符串.
strncat的模拟实现 代码实现如下:
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strncat(char* dest, const char* src, int num)
{
assert(dest != NULL);
assert(src != NULL);
char* tmp = dest;
while (*dest != '\0')
{
dest++;
}
int i = 0;
for (i = 0; i < num && *src != '\0';i++)
{
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return tmp;
}
int main()
{
char arr1[50] = "hello ";
char* p = "world";
my_strncat(arr1, p, 4);
printf("%s\n", arr1);
return 0;
}
这样就实现了strncat的模拟实现
3.memcpy的模拟是实现
这是用于内存复制的函数,这个函数会从source指向的内存地址开始,连续复制n个字节到destin指向的内存地址中
memcpy的模拟实现如下:
void* my_memcpy(void* dest, void* src, int num)
{
void* ret = dest;
while (num)
{
*(char*)dest = *(char*)src;
dest = (char*)dest+1;
src = (char*)src+1;
num--;
}
return ret;
}
int main()
{
char arr1[] = "hello";
char arr2[] = "world";
printf("%s\n", arr1);
my_memcpy(arr1, arr2,5);
printf("%s\n", arr1);
return 0;
}
最后随着对函数的理解深入,我慢慢理解了函数的意义。