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

  • 相关阅读:
    RMI、Hessian、Burlap、Httpinvoker、WebService的比较
    分布式事务(两阶段提交)模型详解
    CAP和BASE理论
    两阶段提交协议的异常处理
    到底什么是单元测试
    Fast Paxos 和 Paxos的区别
    Servlet和JSP生命周期概述
    Zookeeper和 Google Chubby对比分析
    优秀开源项目的svn地址
    Explain语法
  • 原文地址:https://www.cnblogs.com/8586/p/1385366.html
Copyright © 2020-2023  润新知