模拟实现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;

};

测试结果:

总结:

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

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

相关推荐
Tisfy30 分钟前
LeetCode 0301.删除无效的括号:二进制枚举 / 回溯
算法·leetcode·字符串·题解·回溯·括号匹配·二进制枚举
Nil20838 分钟前
leetcode 322零钱兑换
算法·leetcode·职场和发展
老王爱玩车42 分钟前
动态内存管理
c语言·开发语言·学习·面试
海绵宝宝转agent42 分钟前
2026-10-9 leetcode100刷题+面经整理
笔记·算法·面试
yi0111 小时前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
木井巳1 小时前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
Logic1011 小时前
C语言/数据结构数位DP题解:平滑排列数字统计——区间内相邻位差不超过K的数字个数
c语言·数据结构·动态规划·时间复杂度·数位dp·算法题·前导零处理
扶风ff1 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
yi0111 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
Zwawa1 小时前
把 AO 接回来:黑线和白底之间到底差了多少
c语言·单片机·嵌入式