memcpy与memccpy
时间: 2023-11-22 20:50:06 浏览: 57
memcpy和memccpy都是C语言中的内存拷贝函数,但是它们有一些区别。
1. memcpy函数的原型为void *memcpy(void *dest, const void *src, size_t n),它的作用是将src指向的内存区域复制到dest指向的内存区域,n是要复制的字节数。memcpy函数没有遇到特定字符就停止的功能。
2. memccpy函数的原型为void *memccpy(void *dest, const void *src, int c, size_t n),它的作用是将src指向的内存区域复制到dest指向的内存区域,n是要复制的字节数,c是一个字符。当复制到src中第一个值为c的字符时,复制停止。memccpy函数返回指向dest中值为c的字符后面一个位置的指针,如果在src中没有找到c,那么memccpy函数返回NULL。
下面是两个函数的使用示例:
1. memcpy函数的使用示例:
```c
#include <stdio.h>
#include <string.h>
int main () {
char src[50] = "hello world";
char dest[50];
memcpy(dest, src, strlen(src)+1);
printf("复制后的字符串 : %s\n", dest);
return 0;
}
```
输出结果为:
```
复制后的字符串 : hello world
```
2. memccpy函数的使用示例:
```c
#include <stdio.h>
#include <string.h>
int main () {
char src[50] = "hello world";
char dest[50];
memccpy(dest, src, 'o', strlen(src)+1);
printf("复制后的字符串 : %s\n", dest);
return 0;
}
```
输出结果为:
```
复制后的字符串 : hello w
```
阅读全文