English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Libreria standard - <string.h>
C 库函数 void *memcpy(void *str1, const void *str2, size_t n) da str2 copia n byte str1.
Di seguito è riportata la dichiarazione della funzione memcpy().
void *memcpy(void *str1, const void *str2, size_t n)
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.
La funzione restituisce un puntatore al contenuto della memoria di destinazione str1.
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