English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico da linguagem C

Controle de fluxo da linguagem C

Funções no C

Matrizes no C

Ponteiro no C

String no C

Estrutura da linguagem C

Arquivo da linguagem C

Outro C

Manual de referência da linguagem C

Uso e exemplo da função memcpy() da biblioteca C

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

Declaração

A seguir está a declaração da função memcpy().

void *memcpy(void *str1, const void *str2, size_t n)

Parâmetros

  • 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.

Retorno

A função retorna um ponteiro para a área de armazenamento alvo str1 do ponteiro.

Exemplo online

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

Biblioteca Padrão C - <string.h>