首页 > 其他分享 >C语言中me开头的函数的使用

C语言中me开头的函数的使用

时间:2023-03-23 10:46:50浏览次数:31  
标签:me 函数 str2 str1 memset C语言 开头 strlen memcpy

C语言中,有一系列的函数以me结尾,如memcpy、memmove、memset等。这些函数都是用来操作内存的。

其中,memcpy函数用于将一个内存地址的内容复制到另一个内存地址,

memmove函数也是用于将一个内存地址的内容复制到另一个内存地址,但是它可以处理内存重叠的情况,而memcpy则不能。

memset函数用于将一个内存地址的内容全部设置为某个值。

以下是这些函数的简单示例:

#include <stdio.h>
#include <string.h>

int main () {
   char str1[20] = "hello";
   char str2[20] = "world";
   char str3[20];
   char str4[20];

   /* 复制 str1 到 str3 */
   memcpy(str3, str1, strlen(str1)+1);
   printf("memcpy(str3, str1, strlen(str1)+1): %s\n", str3);

   /* 复制 str2 到 str4 */
   memmove(str4, str2, strlen(str2)+1);
   printf("memmove(str4, str2, strlen(str2)+1): %s\n", str4);

   /* 设置 str1 为 'r' */
   memset(str1, 'r', strlen(str1));
   printf("memset(str1, 'r', strlen(str1)): %s\n", str1);

   return 0;
}
//memcpy和memmove函数的第三个参数是要复制的字节数。因为字符串以'\0'结尾,所以要将'\0'也复制过去,所以要strlen(str1)加1。而memset函数的第三个参数是要设置的字节数,所以不需要加1。
//memset函数只会将指定的字节数设置为某个值。在这个例子中,strlen(str1)返回的是字符串str1的长度,所以memset函数只会将字符串str1的前5个字符设置为'r',而不是整个str1的内存都设置为'r'。

 

标签:me,函数,str2,str1,memset,C语言,开头,strlen,memcpy
From: https://www.cnblogs.com/mokongking/p/17246575.html

相关文章

  • spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHt
     spring,springboot等框架项目通过@RequestBody,@ResponseBody完成请求报文到响应对象及响应对象到响应报文的转换,其底层是通过消息转换器完成消息之间的转换,包括格式转化......
  • C语言函数大全--c开头的函数
    C语言函数大全本篇介绍C语言函数大全中其他c开头的函数1.cbrt,cbrtf,cbrtl1.1函数说明函数声明函数功能doublecbrt(doublex)计算x的立方根(double)fl......
  • 4 步缩减 Script Evaluation Time
    4步缩减ScriptEvaluationTime 4步缩减脚本评估时间(ScriptEvaluationTime)https://touch.marfeel.com/resources/blog/reduce-script-evaluation-time#:~:t......
  • Mybatis配置映射文件中parameterType的用法小结
    原创:在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可。param......
  • 在 Arch Linux 中安装 GNOME 桌面所需步骤介绍
    本指南解释了在Arch Linux 中安装GNOME桌面所需的步骤。本指南有两部分:第一部分是关于安装基本的Arch系统;第二部分是在ArchLinux基础上安装完整的GNOME......
  • kafka消息堆积,consumer掉线
    注:本文转自:https://www.toutiao.com/article/7160323779812983296/?log_from=5abd712547149_1679497545032线上kafka消息堆积,所有consumer全部掉线,到底怎么回事?最近处理......
  • Deployment概念
    概念用于部署无状态的服务,这个最常用的控制器。一般用于管理维护企业内部无状态的微服务,比如configserver、zuul、springboot。他可以管理多个副本的Pod实现无缝迁移、自......
  • C语言-指针学习笔记
    指针变量:变量的值是内存的地址普通变量的值是实际的值指针变量的值是具有实际值的变量的地址作为参数的指针:voidf(int*p);在被调用的时候得到了某个变量的地址......
  • E - Geometric Progression
    E-GeometricProgressionhttps://atcoder.jp/contests/abc293/tasks/abc293_e 思路根据矩阵递推式找出转移矩阵的幂形式。利用矩阵快速幂计算。     ......
  • IHome主页 - 让你的浏览器主页与众不同
    对于每一个经常使用电脑上网的人来说,浏览器的主页是一个常常出现的界面。但是,您是否曾经感到您的浏览器主页过于单调、没有个性化的特点呢?如果您是这样的人,那么IHome主页就......