模拟实现strncpy

代码展示:

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;

};

测试结果:

总结:

本题主要用到指针操作,需要考虑指针移动和指针类型等细节。

坚持编程,我一直在路上!

相关推荐
裕晟资质规划3 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法
是隼人5 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
en.en..5 小时前
C语言 标准输入 / 输出缓冲区
算法
吃好睡好便好6 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球6 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
靠沿8 小时前
贪心算法专题(二)
算法·贪心算法
布莱克6058 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
hongmai6668888 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
多弗朗皮卡丘8 小时前
C语言梦开始的地方19:文件操作
c语言·开发语言
猎头南楼8 小时前
具身智能模型部署方向的能力要求与技术栈梳理
人工智能·深度学习·算法