1.strcpy()函数
原型声明:char strcpy(char dest, const char *src);

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
2.strcpy_s()
_s函数是微软自己加的, 不是标准库, 最直观的是C++下, 该函数不在std命名空间下.
_s函数要求传递数组时(比如字符串)需要额外传递一个参数表示缓存长度以免出错.
在文件头部添加 #define _CRT_SECURE_NO_WARNINGS 1
即可关闭vs的警告。(为了跨编译器允许,一般不使用strcpy_s函数,但在vs中会有警告,故使用宏定义消除警告。)
注意,strcpy_s有两个版本,一个可以帮助我们自动推断缓冲区的大小,而另外一个不能帮助我们推断,因此在编译器不能推断缓冲区大小的时候,我们需要自己指定缓冲区的大小,如下面的程序所演示的那样。

int main()
{char sz[128] = {0};strcpy_s( sz, "Hello World!" );cout<< sz << endl;char* pSz2 = new char[128];strcpy_s( pSz2, 128, "hello");cout<< pSz2 << endl;delete pSz2;return 0;
}

3 strnpy()

strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于string.h,把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。
函数原型char *strncpy(char *dest,char *src,size_t n);

(c/c++)复制字符串src中的内容(字符,数字、汉字….)到字符串dest中,复制多少由size_tn的值决定。
如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n小于src的长度,只是将src的前n个字符复制到dest的前n个字符,不自动添加’\0’,也就是结果dest不包括’\0’,需要再手动添加一个’\0’。
如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符长度+’\0’。

一般情况下,使用strncpy时,建议将n置为dest串长度(除非你将多个src串都复制到dest数组,并且从dest尾部反向操作),复制完毕后,为保险起见,将dest串最后一字符置NULL,避免发生输出乱码问题。当然喽,无论是strcpy还是strncpy,保证dest串容量(能容纳下src串)才是最重要的。

4 strlcpy()

linux C语言标准库函数strlcpy,是更加安全版本的strcpy函数,在已知目的地址空间大小的情况下,把从src地址开始且含有’\0’结束符的字符串复制到以dest开始的地址空间,并不会造成缓冲区溢出。

函数原型声明:size_t strlcpy(char *dst, const char *src, size_t size)

功能: 在已知dest缓冲区大小并不会造成缓冲区溢出前提下,将src地址开始的字符串复制到以dest开始的地址空间
返回值:src字符串的大小
函数参数:参数dst为目的字符串开始的指针,src为源字符串的开始地址,参数size代表dst字符串的大小

常见的字符串复制函数相关推荐

  1. JavaScript中常见的字符串操作函数及用法汇总

    转载地址:http://www.jb51.net/article/65358.htm 这篇文章主要介绍了JavaScript中常见的字符串操作函数及用法,实例汇总了javascript常见的字符串转换 ...

  2. 不使用库函数实现字符串复制函数strCopy

    不使用库函数实现字符串复制函数strCopy算法如下: #include <stdio.h> #include <stdlib.h>char* strCopy(const ch ...

  3. 字符串复制函数strdup和_strdup

    字符串复制函数strdup和_strdup 函数原型 #include <string.h> char *strdup(const char *s); strdup()函数是c语言中常用的 ...

  4. C语言字符串复制函数strcpy()的编写与详解

    strcpy,即string copy(字符串复制)的缩写. 原型声明:char *strcpy(char *dest, const char *src); 头文件:#include <stri ...

  5. C++字符串复制函数

    今天用到字符串的复制操作,做一个以二进制的形式读一个文件,以16进制写到TXT中,再以十六进制转换成二进制写回原文件.达到复制文件的效果,同时用的是多线程,边读边写的操作. 期间做一个缓冲区用到了字符 ...

  6. C语言自定义字符串复制函数

    用C语简单实现一个字符串复制函数 /*============================================================================Name ...

  7. 不调用C++/C字符串库函数,实现字符串复制函数strcpy

    已知strcpy的函数原型:char *strcpy(char *strDest,const char *strSrc),其中strDest是目的字符串,strSrc是源字符串.不调用C++/C的字符 ...

  8. 字符串复制函数strcpy的实现算法

    1,字符串复制,需要考虑三种情况: 目的字符串未被赋值,本身是个空串,源字符串存在. 目的字符串长度m大于或等于源字符串长度n,此时复制时,源字符串代替目的字符串前n个字符,目的字符串后m-n个字符扔 ...

  9. 字符串复制函数strncpy()和内存拷贝函数memcpy()

    #include<string.h> char *strncpy(char *dest, const char *src, unsigned long n); 功能是将指针变量src所指向 ...

最新文章

  1. 多线程共享内存的问题
  2. iframe 父窗口和子窗口相互的调用方法集锦
  3. JSON数据的解析方式
  4. 一文带你了解 JVM 的垃圾回收机制
  5. 谷歌宣布Kotlin成安卓开发一级语言,我们如何来学习它
  6. 电商系统中商品模型与类目体系设计
  7. 优科豪马冬季SUV轮胎G072的性能特点全解
  8. Codeforces Round #507 (Div. 2) B - Shashlik Cooking(模拟)
  9. 【Python机器学习】梯度下降法(三) 优矿(uqer.io)
  10. 小米手机获取ROOT权限的一些坑及补坑经验
  11. Excel绘制CDF图
  12. Spine 2D骨骼动画教程-完整实例入门教程
  13. python3表白代码弹窗_抖音整蛊表白电脑弹窗代码大全
  14. java线程游戏之随机小球游戏V2
  15. 毕业四年年薪200万是怎样的一种体验?
  16. java 全局快捷键_java全局快捷键--jintellitype
  17. 有关在 Windows 上使用 Python 的常见问题解答
  18. python怎么隐藏输入法_打开和关闭输入法
  19. 趣味计算机知识问答题,趣味问答题及答案
  20. 8421码5421码2421码和余3码的区别

热门文章

  1. 移动磁盘由于IO设备错误,无法运行此项请求要怎么办啊
  2. Me-and-My-Girlfriend-1
  3. python的empty函数_empty函数
  4. ArrayList(五月的仓颉)
  5. 学校校车运营各项安全管理制度_学校校车安全管理制度介绍
  6. H323plus的学习使用(1)——编译安装h323plus
  7. python爬取豆瓣电影榜单
  8. 2022年医院三基考试护理考试模拟试题卷及答案
  9. 人体红外线感应垃圾桶控制板自动感应垃圾桶线路板MCU单片机开发
  10. openGauss GRANT授权