(1)sprintf:把格式化字符串写入某个字符串,对写入buffer的字符数没有限制,存在溢出可能;

(2)strcpy:把src开始以\0结尾的字符串复制到以dest为开始的地址空间,dest可能空间不够存放;

(3)strncpy:把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest,可以避免缓存不够,但是src大于dest时可能出现乱码,可以把dest末尾置空来避免;

(4)memcpy:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中,src和dest有可能出现空间重叠,它可以复制任何内容;

sprintf:

int main()
{int ddd=666;char *buffer=NULL;    if((buffer = (char *)malloc(80*sizeof(char)))==NULL){printf("malloc error\n");}sprintf(buffer, "The value of ddd = %d", ddd);//The value of ddd = 666printf("%s\n",buffer);free(buffer);buffer=NULL;return 0;
}

strcpy:

void main()
{char a[20],c[]="i am teacher!";strcpy(a,c);cout<<a<<endl;
}
      char *a="coda";char b[MAX]="you are the best one.";char *p;p=strcpy(b+8,a);puts(p);

输出结果为:coda
可能到这里你已经发现了一些问题,如果想把一个字符串的一部分复制到另一个字符串的某个位置,该怎么办呢,显然strcpy()函数是满足不了这个功能的,strncpy()函数是为了弥补strcpy()函数不能检查目标字符串是否容纳下源字符串的不足而设定的一个函数。并且完全可以实现这个功能。

memcpy:

作用:将s中的字符串复制到字符数组d中。
//memcpy.c
#include <stdio.h>
#include <string.h>
int main()
{char* s="GoldenGlobalView";char d[20];clrscr();memcpy(d,s,(strlen(s)+1));printf("%s",d);getchar();return 0;
}
输出结果:Golden Global View
example2
作用:将s中第13个字符开始的4个连续字符复制到d中。(从0开始)#include<string.h>
int main(
{char* s="GoldenGlobalView";char d[20];memcpy(d,s+12,4);//从第13个字符(V)开始复制,连续复制4个字符(View)d[4]='\0';//memcpy(d,s+12*sizeof(char),4*sizeof(char));也可printf("%s",d);getchar();return 0;
}
输出结果: View

sprintf、strcpy、strncpy及 memcpy 函数,请问这些函数功能有什么区别?配实例详解!相关推荐

  1. C 语言中获取系统时间的函数,C/C++如何获取当前系统时间的实例详解

    C/C++如何获取当前系统时间的实例详解 C库中与系统时间相关的函数定义在头文件中, C++定义在头文件中. 一.time(time_t*)函数 函数定义如下: time_t time (time_t ...

  2. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  3. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  4. python编程入门与案例详解课后题答案-Python入门之三角函数sin()函数实例详解

    描述 sin()返回的x弧度的正弦值. 语法 以下是sin()方法的语法: importmath math.sin(x) 注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对 ...

  5. python编程入门与案例详解pdf-Python入门之三角函数sin()函数实例详解

    描述 sin()返回的x弧度的正弦值. 语法 以下是sin()方法的语法: importmath math.sin(x) 注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对 ...

  6. python教程三角函数_Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...

  7. php判断参数_php检查函数必传参数是否存在的实例详解

    php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...

  8. python format函数实例_python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...

  9. python画tan_Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...

最新文章

  1. Python 三十大实践、建议和技巧(附代码链接)
  2. 都说做ToB商业模式,VR AR博物馆内容的矿或许可以挖下
  3. java基础面向对象_Java基础面向对象
  4. Symbian编程总结-图形图像篇-打开非Bitmap类型的图像
  5. Redis如何淘汰过期的keys
  6. java 双向链表_java集合类之LinkedList
  7. 中班机器人上课视频_家委会:出班费买智能扫地机器人,不用家长搞卫生了,莫名其妙...
  8. Linux DMA Engine framework(3)_dma controller驱动
  9. [leetcode]328. Odd Even Linked List
  10. python周末_python周末作业—刘宏升
  11. SD卡无法格式化怎么办?解决方法免费分享
  12. C# Task.Result与Task.GetAwaiter.GetResult()区别
  13. 什么是智能会议平板?
  14. DHCP Snooping IPSG
  15. 如何利用Parsec+Zerotier+moon实现云电脑云游戏
  16. 开发想顺利,流程得明确!
  17. 实际业务中的数据分析流程和痛点
  18. 祝你一路顺风_吴奇隆_酷音小伟编曲_C调简单版
  19. iOS 自动布局报错:Unable to simultaneously satisfy constraints.
  20. 快速批量查询快递物流数据的工具,51Tracking可同时多种快递物流信息跟踪查件

热门文章

  1. Docker 安装 Redis
  2. 快速排序之Java实现
  3. 已经使用过的rails插件
  4. Advanced Transact-SQL for SQL Server 2000 学习译文
  5. DataTable 的 JSON 序列化
  6. C++中的union(联合体,共用体,数据变量可以共享内存,以节省内存空间)
  7. 判断Oracle中某个字段是否含有数字
  8. 好嗨哟~谷歌量子神经网络新进展揭秘
  9. JavaScript中的面向对象
  10. 蓝桥杯C/C++ 带分数