zoukankan      html  css  js  c++  java
  • memcpy() memccpy() 拷贝内存内容

    相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()
    表头文件: #include <string.h>
    定义函数: void *memcpy(void *dest, const void *src, size_t n)
    函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束
    返回值:   返回指向dest的指针
    附加说明: 指针src和dest所指的内存区域不可重叠



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

    int main()
    {
        char a[30] = "string (a)";
        char b[30] = "hi\0zengxiaolong";
        int i;

        strcpy(a, b);             //a[30] = "hi\0ing (a)"
        printf("strcpy():");
        for(i = 0; i < 30; i++)
            printf("%c", a[i]);   //hiing (a)


        memcpy(a, b, 30);         //a[30] = "hi\0zengxiaolong"
        printf("\nmemcpy():");
        for(i = 0; i < 30; i++)
            printf("%c", a[i]);   //hizengxiaolong
        printf("\n i = %d\n", i); //30

    }



    相关函数: bcopy(), memcpy(), memmove(), strcpy(), strncpy()
    表头文件: #include <string.h>
    定义函数: void *memccpy(void *dest, const void *src, int c, size_t n);
    函数说明: memccpy()用来拷贝src所指的内存内容前n个字节到dest所指的地址上。与memcpy()不同的是,memccpy()如果在src中遇到某个特定值(int c)立即停止复制。
    返回值:   返回指向dest中值为c的下一个字节指针。返回值为0表示在src所指内存前n个字节中没有值为c的字节。


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

    int main()
    {
        char a[] = "string[a]";
        char b[] = "string(b)";
        memccpy(a, b, 'b', sizeof(b)); //a[] = "string(b]"
        printf("memccpy():%s\n", a);
    }

  • 相关阅读:
    如何成为伟大的程序员
    程序员如何增加收入
    一个阿里巴巴码农的六年回眸
    效仿盖茨:PPstream创始人的心路历程
    程序员的工作环境与效率
    软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
    技术人员创业后就不再适合继续编码了
    互联网行业持续交付的经验
    11 款用于优化、分析源代码的Java工具
    常用 Java 静态代码分析工具的分析与比较
  • 原文地址:https://www.cnblogs.com/8586/p/1385366.html
Copyright © 2011-2022 走看看