模拟实现strncat

模拟实现strncat:

在系统库函数中,存在strncat这个函数,它用于字符串的追加,就是在一个字符串后面再追加一个字符串,它的函数原型为:

char *strncat( char *strDest, const char *strSource, size_t count );

在其中,*strDest为目标字符串,*strSource为源字符串,count为需要追加的字符串的个数,strncat就是将源字符串追加count个字符在目标字符串后面。size_t表示无符号整型,因为count不可能为负数。同样也可以自己定义:

typedef unsigned int nuit;

模拟代码实现 :

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
typedef unsigned int uint;
char *my_strncat(char *dest, const char *src, uint count)//模拟实现strncat函数
{
	assert(dest);
	assert(src);
	int *ret = dest;
	while (*dest)
	{
		dest++; //找到dest中的\0
	}
	while (count--)
	{
		*dest++ = *src++;
	}
	*dest = ‘\0‘;
	return ret;
}
//程序测试
int main()
{
	char arr[20] = "abcdef";
	int len = strlen(arr);
	my_strncat(arr, arr, len);
	printf("%s\n", arr);
	system("pause");
	return 0;
}
时间: 2024-10-12 14:55:51

模拟实现strncat的相关文章

【C语言】【笔试题】模拟实现strncat

#include <stdio.h> #include <stdlib.h> #include  <assert.h> char *my_strncat(char *dest, const char *src, int len) {     char *ret = dest;     while (*dest)     {         dest++;     }     while (len--)     {         *dest = *src;       

模拟实现strncpy,strncat,strncmp

1.模拟实现strncpy  <1.>strncpy相比于strcpy增加了size_t参数可以实现最多拷贝的字节数<2.>(size_t不可以超出拷贝存放的内存大小)来保证不会超出destanaton的内存,<3.>但是需要注意的是,如果你需要拷贝的长度小于源字符串长度,那么strncpy不会在末尾加'\0' 1 #include<stdio.h> 2 #include<assert.h> 3 #include<string.h>

部分函数功能的实现

1:strcpy的实现 函数功能:把从src地址处开始的字符串拷贝到以dest为开始地址的空间里, 其中包含src字符串结尾处的'\0'. 代码实现: #include<stdio.h>//模拟实现strcpy#include<assert.h>void my_strcpy(char *dest,  const char *src)/*函数不需要返回*/{    assert(dest); assert(src); while(*src)/*把src的字符从前到后往dest里拷贝*

模拟实现strcat和strncat

今天我们模拟实现一下strcat和strncat这两个函数. 首先我们先了解一下strcat这个函数,它的意思是将第二个字符串连接到第一个字符串的末尾.我们先看下函数原型: char *strcat(char *dest, char *src) 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.下面我们来看一下程序: #include <stdio.h> #include <assert.h> char *my_strcat (char *des

字符串相关函数的模拟实现

要模拟库函数的实现,必须要搞清楚的是在程序调用中它的实现原理是什么,接下来就讲解几个字符串相关的函数,比如strcmp(),strncmp(),strcat(),strncat()...... 字符串函数主要包括受限制字符串函数与不受限制字符串函数,那么什么是受限制字符串函数与不受限制字符串函数呢?!简单来讲,不受限制字符串函数就是使用这些函数时,它们只是通过字符串结尾的NULL 字符来确定字符串的长度,例如我们常用的strcmp(),strcpy():而受限制的字符串函数就是这些函数她们接受一

CentOS系统启动及内核大破坏模拟实验

讲过了centos的启动流程,此时是不是想来点破坏呢?那就尽情的玩耍吧,记得在实验之前拍个快照,万一哪个环节错误恢复不回来了呢,毕竟数据无价,话不多说,开始. 一.删除伪系统根.(ramdisk文件) (1)模拟误操作删除ramdisk文件. ①模拟误删除initramfs-3.10.0-514.el7.x86_64.img文件. ②为当前正在使用的内核重新制作ramdisk文件 格式为:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) (

NYOJ 2356: 哈希计划【模拟】

题目描述 众所周知,LLM的算法之所以菜,就是因为成天打游戏,最近LLM突然想玩<金庸群侠传X>,结果进去后各种被虐,LLM就开始研究这个游戏的代码,顺便还学会了一点点点点lua语言,然后就开始了伟大的改游戏代码之旅,然后LLM发现自己too young了,这个游戏把所有的文本都进行了哈希,如果自己改了代码或者剧情文本的话它哈希出来的值就会和原来的哈希值不一样......然后游戏就会打不开.....,现在LLM发现了文本的哈希函数,要求你写个程序,功能为: 输入一段字符串,输出一个哈希值 为了

爬虫——模拟点击动态页面

动态页面的模拟点击: 以斗鱼直播为例:http://www.douyu.com/directory/all 爬取每页的房间名.直播类型.主播名称.在线人数等数据,然后模拟点击下一页,继续爬取 #!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' """ 动态页面的模拟点击: 模拟点击斗鱼直播:http://www.douyu.com/directory/all 爬取每页房间名.直播类型.主播名称.在线人数

爬虫——网站模拟登录

使用Selenium与PhantomJS模拟登录豆瓣:https://www.douban.com/ #!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' """ 模拟登录豆瓣:https://www.douban.com/ """ from selenium import webdriver # 调用环境变量指定的PhantomJS浏览器创建浏览器对象,executable