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

  • 相关阅读:
    《一线架构师》之Refined Architecture阶段
    可修改性战术分析
    上周学习总结
    软件质量属性之可修改性
    《信息领域热词分析》实现六种质量属性
    质量属性的六个常见属性应用场景(淘宝篇)
    软件架构师如何工作
    信息领域热词分析
    结合ssh谈MVC架构模式
    PythonCPPJava的异同
  • 原文地址:https://www.cnblogs.com/8586/p/1385366.html
Copyright © 2011-2022 走看看