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

C 语言基础教程

C 语言流程控制

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C 库函数 memcpy() 使用方法及示例

Libreria standard - <string.h>

C 库函数 void *memcpy(void *str1, const void *str2, size_t n) da str2 copia n byte str1.

Dichiarazione

Di seguito è riportata la dichiarazione della funzione memcpy().

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

Parametri

  • str1 -- Puntatore all'array di destinazione per il contenuto copiato, convertito a puntatore void*.

  • str2 -- Puntatore al contenuto della sorgente da copiare, convertito a puntatore void*.

  • n -- Il numero di byte da copiare.

Valore di ritorno

La funzione restituisce un puntatore al contenuto della memoria di destinazione str1.

Esempio online

Esempio di utilizzo della funzione memcpy().

// Copia la stringa nell'array dest
#include <stdio.h>
#include <string.h>
 
int main ()
{
   const char src[50] = "https://it.oldtoolbag.com";
   char dest[50];
 
   memcpy(dest, src, strlen(src)+1);
   printf("dest = %s\n", dest);
   
   return(0);
}

Compiliamo e eseguiamo il programma sopra, ciò produrrà il seguente risultato:

dest = https://it.oldtoolbag.com

Copia 6 caratteri consecutivi, iniziando dal 11esimo carattere di s, in d:

#include <stdio.h>
#include<string.h>
 
int main()
 
{
  char *s = "http://it.oldtoolbag.com";
  char d[20];
  memcpy(d, s+11, 6); // Dalla 11a carattere (r) inizia a copiare 6 caratteri consecutivi (w3codebox)
  // Oppure memcpy(d, s+11*sizeof(char), 6*sizeof(char));
  d[6] = '\0';
  printf("%s", d);
  return 0;
}

Compiliamo e eseguiamo il programma sopra, ciò produrrà il seguente risultato:

w3codebox

Sovrapponi parte dei dati esistenti:

#include<stdio.h>
#include<string.h>
 
int main(void)
{
  char src[] = "***";
  char dest[] = "abcdefg";
  printf("Utilizzo di memcpy: %s\n", dest);
  memcpy(dest, src, strlen(src));
  printf("Dopo l'uso di memcpy: %s\n", dest);
  return 0;
}

Compiliamo e eseguiamo il programma sopra, ciò produrrà il seguente risultato:

Prima dell'uso di memcpy: abcdefg
Dopo l'uso di memcpy: ***defg

Libreria standard - <string.h>