• 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;
    }

  • 相关阅读:
    函数如何命名
    jsp/servlet
    hibernate主键生成策略
    Java项目经验(ssh)
    jvm的内存区划分
    @Override
    Java成长简介(转载)
    接口 转载
    SpringBoot项目jar、war方式的部署
    服务注册与发现及其优雅停服
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318627.html
Copyright © 2020-2023  润新知