当前位置: 首页 > article >正文

c语言:模拟实现各种字符串函数(2)

strncpy函数:

功能:拷贝指定长度的字符串a到字符串b中 

代码模拟实现: 

//strncpy
char* my_strncpy(char* dest, char* str,size_t num)
{
	char* ret = dest;
	assert(dest && str);//断言,如果其中有一个为空指针,停止运行,保护程序
		while ((num)&&(*dest=*str))
		{
				dest++;
				str++;
				num--;
		}
	return ret;
}
int main()
{
	char arr1[20] = { 0 };//被拷入数组
	char arr2[] = "abcdef";//拷入数组
	my_strncpy(arr1, arr2,3);
	printf("%s\n", arr1);
	return 0;
}

效果展示:

strncat函数:

功能:拷贝指定长度的字符串a代替b中同样位置的字符串,然后接着打印剩下b的内容,多余的舍去。

代码模拟实现: 

char* my_strncat(char* dest, const char* src,size_t num)
{
    char* ret = dest;
    assert(dest && src);//断言
    //找到目标空间,也就是第一个字符串的结尾的\0
    while ((num)&&*dest)
    {
        num--;
        dest++;
    }
    //拷贝
    while (*dest = *src)
    {
        dest++;
        src++;
    }
    return ret;
}
int main()
{
    char arr1[20] = "hello ";
    char arr2[] = "world";
    my_strncat(arr1, arr2,6);
    printf("%s\n", arr1);
    return 0;
}

效果展示:


http://www.kler.cn/a/145550.html

相关文章:

  • 假期day1
  • 私有IP、VLAN和VPC,分别适合哪些场景你知道吗?
  • ubuntu k8s 1.31
  • 可扩展性设计架构模式——开闭原则
  • MySQL(4)多表查询
  • 快速入门Flink
  • 软件测试面试题之如何进行项目介绍
  • Git使用基础总结(从小白到新手版)
  • 乘波前行的问题
  • 【Spring源码】Spring Event事件
  • STM32 配置中断常用库函数
  • 什么是分布式锁?Redis实现分布式锁详解
  • Mac 最佳使用指南
  • nginx相关配置信息
  • 用 Addon 增强 Node.js 和 Electron 应用的原生能力
  • 云计算领域的第三代浪潮!
  • C++ 数据结构之-最小栈(MinStack)
  • JAVA小游戏简易版王者荣耀
  • JAVA后端开发技术报告
  • elastic -job和springboot集成实现分布式调度5
  • Ubuntu开机显示recovering journal,进入emergency mode
  • 如何跑通yolov5/yolov8+深度学习代码如何跑通+代码报错怎么办(代码部署教程)
  • SpringBoot事务处理
  • 【Web-Note】 JavaScript概述
  • Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!
  • redis报错3