曲径通幽论坛

标题: memccpy() -- 拷贝内存内容 [打印本页]

作者: beyes    时间: 2011-12-21 14:26
标题: memccpy() -- 拷贝内存内容
memccpy() 原型如下:
[C++] 纯文本查看 复制代码
#include <string.h>
void *memccpy(void *dest, const void *src, int c, size_t n);

该函数用来复制 src 所指的内存的前 n 个字节到 dest 所指的内存空间去。但它这里还有个特点,在复制过程中会检查第 3 个参数 c,如果一旦遇到该字符,那么复制将中断呢。

函数返回指向 dest 中值为 c 的下一个字节的指针。如果 src 指向的前 n 个字节中没有值为 c 的字符那么返回 NULL 。

测试代码
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>

int main()
{
        char dest[128];

        char src[] = "www.groad.net";

        char tmp[] = "hello linux";

        char *p;

        bzero(dest, 128);

        p = memccpy(dest, src, 'd', sizeof(src));


        printf ("%s\n", dest);

        memcpy(dest+9, tmp, sizeof(tmp));

        printf ("%s\n", p);

        return 0;
}

运行输出:
./memccpy
www.groad
hello linux





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2