Strcpy: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(13 versioni intermedie di 10 utenti non mostrate)
Riga 1:
{{S|programmazione}}
{{titolo minuscolo}}
'''<tt>strcpy</tt>''' è una [[funzione (informatica)|funzione]] della [[libreria standard del C]] definita nel file ''header'' [[string.h]] che copia una [[Stringa (informatica)|stringa]] da una locazione ad un'altra.
 
Il prototipo della funzione è:<ref>{{en}} [http://www.cplusplus.com/reference/clibrary/cstring/strcpy.html strcpy - C++ Reference] {{Webarchive|url=https://web.archive.org/web/20070610093650/http://www.cplusplus.com/reference/clibrary/cstring/strcpy.html |date=10 giugno 2007 }}</ref>
 
<sourcesyntaxhighlight lang=c>
voidchar *strcpy(char *destinazione, const char *sorgente);
</syntaxhighlight>
</source>
L'ordine degli argomenti fa in modo che l'assegnazione sia fatta in modo che <code>sorgente</code> sia copiato in <code>destinazione</code>.
 
== Esempio d'uso ==
Ad esempio
<sourcesyntaxhighlight lang="c">
char *str1 = "abcdefghijklmnop";
char *str2 = malloc(sizeof(char)*100); /* deve essere abbastanza grande in modo da contenere l'intera stringa! */
strcpy(str2, str1); /* str2 ora e' "abcdefghijklmnop" */
str2[0] = 'A'; /* str2 ora e' "Abcdefghijklmnop" */
</syntaxhighlight>
</source>
Nella seconda linea è allocata la memoria per la copia della stringa, poi la stringa è copiata da un blocco di memoria ad un altro, poiinfine la prima lettera della stringa copiata viene modificata.
 
==Implementazione==
Una comune implementazione della funzione è:<ref>[https://github.com/torvalds/linux/blob/596cf45cbf6e4fa7bcb0df33e373a7d062b644b5/lib/string.c#L89 linux/lib/string.c] su [[GitHub]]</ref>
 
<sourcesyntaxhighlight lang="c">
char *strcpy(char *dest, const char *src)
{
char *tmp = dest;
 
while ((*dest++ = *src++); != '\0')
return dest;
/* nothing */;
return desttmp;
}
</syntaxhighlight>
</source>
 
== Note ==
Line 35 ⟶ 38:
 
== Collegamenti esterni ==
* {{en}} [httphttps://linux.die.net/man/3/strcpy strcpy(3)] - Pagine manuale Linux
 
{{Portale|informatica}}