目录
一、strncpy的使用及模拟实现。
1、使用:
strncpy的作用是:从字符串中复制字符(拷贝)
将source(源)的前num个字符复制到目标。如果在复制num个字符之前找到源C 字符串的末尾(由空字符表示) ,则用零填充目标,直到总共写入num个字符。如果source长于num ,则不会在目标 末尾隐式附加空字符。
例子:
从运行结果我们可以看到,arr1数组的前三个字符被拷贝在了arr2数组的前三个字符上。
且:strnpy返回的是char*的指针。
2、模拟实现:
#include<assert.h>
char* my_strncpy(char* destination, const char* source, size_t num)
{
assert(destination && source); //防止传入空指针
char* ret = destination; //保存目标指针的初始位置
while (num--)
{
*destination++ = *source++;
}
return ret;
}
int main()
{
char arr1[] = { 1,2,3,4,5,6 };
char arr2[10] = { 2,3,4,5,6,7,8,9,0,1 };
size_t i;
size_t sz = sizeof(arr2) / sizeof(arr2[0]);
for (size_t i = 0; i < sz; i++)
{
printf("%d ", arr2[i]);
}
printf("\n");
char*ret=my_strncpy(arr2, arr1, 3);
for (i = 0; i < sz; i++)
{
printf("%d ", arr2[i]);
}
printf("\n");
return 0;
}
我们可以看到,模拟实现出来的函数与C语言内置函数实现了相同的过程。
二、strncat的使用与模拟实现
1、使用:
strncat的作用是从源字符串追加字符串在目标字符串中。(Append characters from string)
例子:
从运行结果我们可以看出:通过strncat我们将arr2数组的元素追加到了arr1数组的末尾。
2、模拟实现
从中我们可以看到:通过函数my_strncat我们模拟实现了C语言中内置函数strncat的功能。