代码展示:
javascript
#include <stdio.h>
#include <stddef.h>
//模拟strncpy
char* my_strncpy(char* dest, char* src, size_t n)
{
char* start = src;
while(n > 0 && *src != '\0')
{
*dest = *src;
dest++;
src++;
n--;
}
while(n > 0)
{
*dest = '\0';
dest++;
n--;
}
return start;
}
//测试
int main()
{
char arr1[20] = "xxxxxxxxxx";
char arr2[] = "abcdef";
//测试源串长度<n
my_strncpy(arr1, arr2, 8);
printf("结果为%s\n", arr1);
//测试源串长度>n
char arr3[] = "1234567890";
my_strncpy(arr3, arr2, 3);
printf("结果为%s\n", arr3);
return 0;
};
测试结果:

总结:
本题主要用到指针操作,需要考虑指针移动和指针类型等细节。
坚持编程,我一直在路上!