【C/C++】字符串函数之复制函数
C/C++字符串复制函数:
C/C++字符串函数的头文件:string.h
复制函数主要有4个,如下:
- 1、char * strcpy(char* destination,const char * source);
- 2、char* strncpy(char* destination,const char* source,size_t num);
- 3、void * memcpy(void* destination,const void* source,size_t num);
- 4、void * memmove(void* destination,const void* source,size_t num);
功能及用法说明:
1、strcpy:将由source指针指示的C 字符串(包括结尾字符)复制到destination指针指示的区域中。
该函数不允许source和destination的区域有重叠,同时,为了避免溢出,destination区域应该至少和source区域一样大。
2、strncpy:复制source的前num字符到destination。
如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。注意:并不是添加到destination的最后,而是紧跟着由source中复制而来的字符后面。下面举例说明(这里,需要注意strcpy仅仅复制到null字符就结束了):
char des[] = "Hello,i am!";char source[] = "abc\0def";strncpy(des,source,5);//此时,des区域是这样的:a,b,c,\0,\0,i,空格,a,m,! //\0,\0并不是添加在!的后面。
3、memcpy:将source区域的前num个字符复制到destination中。
该函数不检查null字符(即将null字符当作普通字符处理),意味着将复制num个字符才结束。该函数不会额外地引入null字符,即如果num个字符中没有null字符,那么destination中相应字符序列中也没有null字符。同strcpy的区别:允许将source中null字符后面的字符也复制到destination中,而strcpy和strncpy则不可以。
4、memmove:同memcpy完成同样的功能.
区别是,memmove允许destination和source的区域有重叠。而其他三个函数不允许。
//例子:char str[] = "This is a test!";memmove(str+2,str+10,4);//此时,str变成:Thtests a test!
【C/C++】字符串函数之复制函数相关推荐
- 两个字符串之间的复制,不使用strcopy()函数
1.strcopy()函数 strcopy()函数只提供字符串的复制.即strcopy()只用于字符串之间的复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. #include <io ...
- R语言stringr包str_dup函数字符串多次复制实战
R语言stringr包str_dup函数字符串多次复制实战 目录 R语言stringr包str_dup函数字符串多次复制实战 #导入stringr包 #仿真数据
- 不使用库函数实现字符串复制函数strCopy
不使用库函数实现字符串复制函数strCopy算法如下: #include <stdio.h> #include <stdlib.h>char* strCopy(const ch ...
- 字符串复制函数strdup和_strdup
字符串复制函数strdup和_strdup 函数原型 #include <string.h> char *strdup(const char *s); strdup()函数是c语言中常用的 ...
- C语言字符串复制函数strcpy()的编写与详解
strcpy,即string copy(字符串复制)的缩写. 原型声明:char *strcpy(char *dest, const char *src); 头文件:#include <stri ...
- C++字符串复制函数
今天用到字符串的复制操作,做一个以二进制的形式读一个文件,以16进制写到TXT中,再以十六进制转换成二进制写回原文件.达到复制文件的效果,同时用的是多线程,边读边写的操作. 期间做一个缓冲区用到了字符 ...
- C语言自定义字符串复制函数
用C语简单实现一个字符串复制函数 /*============================================================================Name ...
- 详解字符串处理函数(复制、连接、比较、字符串长度函数)
常用的字符串处理函数 字符串的输入和输出 字符串的复制.连接.比较及字符串的长度 字符串的输入和输出 输入函数: scanf(格式控制字符串,输入参数表) 格式控制说明符 %s , 输入参数 字符型数 ...
- 不调用C++/C字符串库函数,实现字符串复制函数strcpy
已知strcpy的函数原型:char *strcpy(char *strDest,const char *strSrc),其中strDest是目的字符串,strSrc是源字符串.不调用C++/C的字符 ...
最新文章
- python使用imbalanced-learn的NeighbourhoodCleaningRule方法进行下采样处理数据不平衡问题
- pythonista3使用教程-Pythonista中文文档:使用Pythonista
- python基础学习[python编程从入门到实践读书笔记(连载二)]:外星人入侵项目
- web安全学习—Http协议基础
- 七月时忙碌而充实的_如何减少忙碌而更有效
- Windows安装zookeeper 单机版
- 数字化转型最致命的5个误区
- 简单用电脑摄像头实现人脸识别
- [转]论window和Linux之长短
- Aspose.Words doc转pdf 内容出现丢失,页码跳页,排版混乱问题
- android传感器type_orientation,android – 已弃用的Sensor.TYPE_ORIENTATION的等效替换
- 004 数字调制ASK,OOK,FSK,PSK,QAM,CPFSK
- 聪明的人脸识别4——Pytorch 利用Retinaface+Facenet搭建人脸识别平台
- 为什么产品经理都在考PMP?一文透析
- P5149 会议座位 归并
- 福州大学java期末试卷,Java Web认证题.doc
- [Scrapy教学9]一定要懂的Scrapy框架结合Gmail寄送爬取资料附件秘诀
- 前端资料整理--持续更新中
- e66java存档,1000d
- 吴恩达ex3_Andrew Ng在Coursera上课程ex3的一点小心得
热门文章
- 【ManageEngine】网络性能监控工具
- CSS —— background 背景
- css直角线_直角符号和垂直符号 过射线的端点和刚作的点,画射线
- TOOM舆情分析和报告工具,大数据决策免费舆情监控辅助工具?
- 不存在有效_【案例分析】离职确认书约定“双方不存在任何的劳动争议纠纷”这一条款是否有效? 【(2019)辽01民终14302号】...
- 用AS3.0开发flash版SLG游戏-1
- 战斗方块系统 steam服务器,steam游戏测评战斗方块剧场BattleBlockTheater
- 2021辽宁省赛——H制造游戏币
- 关于mobiscroll.js 仅显示年和月
- 创建目录public html,php CI如何实现全站静态生成html,动态创建目录