zoukankan      html  css  js  c++  java
  • strcpy,memset,memcpy三者之间的根本区别

    1.strcpy的用法

       strcpy的作用是拷贝字符串,当它遇到''时结束拷贝,原型为:extern char *strcpy(char *dest,char *src);

    就是把src的字符串复制到dest中,例如:

    #include<string.h>

    #include<iostream.h>

    void main(){

    char a[20],c[]="i am teacher!";

    strcpy(a,c);

    cout<<a<<endl;}

    此小例子中,char c[]={'i',' ','a','m',' ','t','e','a','c','h','e','r',''};字符串一般默认后面有一个结束符,

    当用到strcpy(a,c);函数时,把c中的字符串复制到a中,当遇到字符串中默认的结束符后,复

    制结束。

    2.memcpy的用法

    memcpy用来做内存拷贝,可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;

    原型函数为void *memcpy(void *dest, const void *src, size_t n);其中dest为返回的值。功能是从源src

    所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置。

    例如:#include <stdio.h>
    #include <string.h>
    int main()
    {
       char *s="Golden Global View";//此字符串总共有18个字符,再加上一个结束符,总共存放19个字符
       char d1[20],d2[20];
       memcpy(d1,s,(strlen(s)+1));//用memcpy函数,把s中字符串的首地址拷贝到d中,连续复制19个字符

    memcpy(d2,s+14,5); //从第14个字符(V)开始复制,连续复制4个字符(View)
       printf("%d ",strlen(s));
       printf("%s ",d1);

    printf("%s ",d2);
       return 0;
    }

    3.memset的用法

    memset的作用是对一段内存空间全部设置为某个字符,常用在内存空间的初始化,其原型函数为

    void *memset(void *s,int c,size_t n);就是把已开辟内存空间s的首n个字节设置为c。

    例如#include <stdio.h>

    #include <memory.h>
    #include <string.h>
    int main()
    {
    char s[]="Golden Global View";
    memset(s,'G',6);//把s中的前6个字符改成G,也就是把Golden改成GGGGGG
    printf("%s ",s);//输出为GGGGGG Global View
    return 0;
    }

  • 相关阅读:
    [2019 CSP-S赛前集训] [CF1037D] Valid BFS?
    [2019 CSP-S赛前集训] [洛谷P1613] 跑路
    [2019 CSP-S赛前集训] [洛谷P1967] 货车运输
    [洛谷博客] 我的洛谷博客内容搬运
    终于开通了博客
    Qt Creator 添加arm版本的qmake时的问题
    U盘挂载问题
    段错误解决办法
    printf %m
    使用pthread_create()创建线程
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318627.html
Copyright © 2011-2022 走看看