English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca Padrão C - <string.h>
Função da biblioteca C void *memcpy(void *str1, const void *str2, size_t n) a partir da área de armazenamento str2 copia n bytes para a área de armazenamento str1。
A seguir está a declaração da função memcpy().
void *memcpy(void *str1, const void *str2, size_t n)
str1 -- Ponteiro para o array alvo que armazenará o conteúdo copiado, convertido forçadamente para void* Ponteiro.
str2 -- Ponteiro para a fonte de dados a ser copiada, convertido forçadamente para void* Ponteiro.
n -- O número de bytes a serem copiados.
A função retorna um ponteiro para a área de armazenamento alvo str1 do ponteiro.
O exemplo a seguir demonstra o uso da função memcpy().
// Copiar a string para o array dest #include <stdio.h> #include <string.h> int main() { const char src[50] = "https://pt.oldtoolbag.com"; char dest[50]; memcpy(dest, src, strlen(src)+1); printf("dest = %s\n", dest); return(0); }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
dest = https://pt.oldtoolbag.com
Copiar o caractere s 11 caracteres começando 6caracteres contínuos copiados para d:
#include <stdio.h> #include<string.h> int main() { char *s="http://pt.oldtoolbag.com"; char d[20]; memcpy(d, s+11, 6);// a partir do 11 caracteres(r) começam a copiar, continuamente copiar 6 caracteres(w3codebox) // ou memcpy(d, s+11*sizeof(char), 6*sizeof(char)); d[6]=\0'; printf("%s", d); return 0; }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
w3codebox
Substituição de parte dos dados existentes:
#include<stdio.h> #include<string.h> int main(void) { char src[] = ""***"; char dest[] = "abcdefg"; printf("Uso do memcpy antes: %s\n", dest); memcpy(dest, src, strlen(src)); printf("Após usar memcpy: %s\n", dest); return 0; }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
Antes de usar memcpy: abcdefg Após usar memcpy: ***defg