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

};

测试结果:

总结:

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

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

相关推荐
tiger8651 分钟前
大语言模型面试和题解,梳理中国主流开源 LLM 系列的发展脉络、技术路线与工程取舍
人工智能·gpt·深度学习·算法·自然语言处理·面试·transformer
我不会起名字32214 分钟前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go
学生小羊36 分钟前
C++ 初阶 学习博客
c语言·c++·c++与c语言的区别·c++基础学习
虚无的纽扣40 分钟前
【力扣刷题】第三天:有效三角形的个数、快乐数
算法·排序算法
tiger86544 分钟前
大语言模型面试和题解,Context Engineering 怎么做?长 Prompt、动态上下文与 Memory 管理
人工智能·深度学习·算法·语言模型·自然语言处理·面试·nlp
无忧.芙桃1 小时前
数据结构之排序算法(中):冒泡排序与快速排序,从相邻交换到工程级优化
c语言·c++·排序算法
不会就选b1 小时前
算法日常・每日刷题--<贪心>17
算法
Hhy_11072 小时前
《C++深度解构04》类和对象(下)——类型转换、static、友元与编译器优化
c语言·c++·学习·类和对象·visual studio
6Hzlia4 小时前
【Classic 150 刷题计划】 LeetCode 205. 同构字符串 | C++ 双向绑定与哈希表映射
c++·算法·leetcode
有点。10 小时前
C++03阶段练习(练习题)
数据结构·算法·图论