简述strcpy、sprintf、memcpy

简介: 简述strcpy、sprintf、memcpy

简述strcpy、sprintf、memcpy的区别

重点1

  1. strcpy、sprintf、memcpy的用法举例。
  2. sprintf(buff_a, "%s", buff_b)时与strcpy(buff_a, buff_b)效果相同。
//strcpy、sprintf
#include <stdio.h>
#include <string.h>
int main() {
  char buff_a[64] = {'z', 'z', 'z', 'z','z', 'z'};
  char buff_b[64] = {'a', 'b', 'c', '\0', 'd'};
  char *str = strcpy(buff_a, buff_b);  //str = abc 会将‘\0’一起复制过去
  printf("str=%s, buff_a= %s\n", str, buff_a);
  //buff_a= len:6 str:abc addr:0x7fff9bbe25a0
  int n = sprintf(buff_a, "len:%d str:%s addr:%p", 6, buff_b, buff_b);  
  printf("n=%d, buff_a= %s\n", n, buff_a);
}
代码执行结果:
str=abc, buff_a= abc
n=33, buff_a= len:6 str:abc addr:0x7fff9bbe25a0

重点2

memcpy 用法举例

//memcpy
#include <stdio.h>
#include <string.h>
int main() {
  char buff_a[64] = {'z', 'z', 'z', 'z','z', 'z'};
  char buff_b[64] = {'a', 'b', 'c', '\0', 'd'};
  memcpy(buff_a, buff_b, 3);
  printf("buff_a:%s\n", buff_a);  //buff_a:abczzz
  memcpy(buff_a, buff_b, 4);  //buff_a:abc 会将‘\0’一起复制过去
  printf("buff_a:%s\n", buff_a);
  return 0;
}
代码执行结果:
buff_a:abczzz
buff_a:abc

重点3

执行效率:memcpy > strcpy > sprintf

原因:memcpy是对内存进行操作,strcpy需要对‘\0’进行检查,sprintf需要进行类型转换。

充电站

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

相关文章
|
8月前
strlen,strcpy,stract,strcmp,strstr函数的模拟实现
strlen,strcpy,stract,strcmp,strstr函数的模拟实现
75 3
|
3月前
|
存储
strcpy、sprintf 与 memcpy 的区别
在 C 语言中,`strcpy`、`sprintf` 和 `memcpy` 是三个用于处理内存和字符串的函数,它们有不同的用途和特点
|
存储 Cloud Native Linux
C++ strcpy、sprintf与memcpy的区别
C++ strcpy、sprintf与memcpy的区别
|
8月前
|
存储 编译器
strlen()和sizeof()的区别
strlen()和sizeof()的区别
65 0
|
C语言
自己实现strcpy和strlen函数
自己实现strcpy和strlen函数
104 0
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
66 0
|
8月前
strlen与sizeof 的基本用法
strlen与sizeof 的基本用法
64 0
|
8月前
|
C++
浅学指针(5)sizeof和strlen的进阶理解
浅学指针(5)sizeof和strlen的进阶理解
|
8月前
|
Serverless
sizeof和strlen的区别【详解】
sizeof和strlen的区别【详解】
65 0
|
编译器 C语言
C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现
C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现
151 0