String.h: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m WPCleaner v2.05 - Fixed using WP:WPCleaner (Errori comuni)
 
(36 versioni intermedie di 23 utenti non mostrate)
Riga 1:
{{titolo minuscolo}}{{libreria standard C}}
one di stringhe non compatibili con l'ASCII viene generalmente risolto con l'uso della libreria <code>[[wchar.h]]</code>.
 
'''string.h''' è l'[[header file]] della [[libreria standard del C]] che contiene definizioni di macro, costanti e dichiarazioni di funzioni e tipi usati non solo nella manipolazione delle stringhe ma anche nella manipolazione della memoria.
 
Le funzioni dichiarate in ''string.h'' sono molto popolari ed essendo parte della libreria standard del C, il loro funzionamento è garantito su ogni piattaforma che supporta il linguaggio C. Tuttavia, l'esistenza di alcuni problemi di sicurezza con queste funzioni, come per esempio problemi di [[buffer overflow]], portano i programmatori a scegliere delle varianti più sicure ma meno portabili. Inoltre le funzioni in questione lavorano solamente con caratteri [[ASCII]] o con un set di caratteri che lo estende in modo compatibile come l'[[ISO 8859-1]]. La gestione di stringhe non compatibili con l'ASCII viene generalmente risolto con l'uso della libreria <code>[[wchar.h]]</code>.
 
==Costanti e tipi==
Line 36 ⟶ 40:
|Concatena ''src'' alla stringa ''dest''.
|-
|<code>'''char *strncat(char *dest, const char *src, size_t n);'''</code>
|Concatena al massimo ''n'' caratteri ''src'' alla stringa ''dest''.
|-
Line 52 ⟶ 56:
|-
|<code>int strcoll(const char *, const char *);</code>
|Confronta due stringhe utilizzando l'[[ordine lessicografico]] stabilito dalla [[Internazionalizzazionelocalizzazione e localizzazione(software)|localizzazione]] utilizzata
|-
|<code>char *[[strcpy]](char *s1, const char *s2);</code>
|Copia la stringa ''s2'' nella stringa ''s1'', incluso il carattere di terminazione ''\0''.
|-
|<code>'''char *strncpy(char *s1, const char *s2, size_t n);'''</code>
|Copia al massimo ''n'' caratteri della stringa ''s2'' in ''s1''.
|-
Line 82 ⟶ 86:
|-
|<code>size_t strxfrm(char *dest, const char *src, size_t n);</code>
|Trasforma la stringa puntata da ''src'' secondo la [[Internazionalizzazionelocalizzazione e localizzazione(software)|localizzazione]] in uso e e copia i primi n caratteri di ''src'' nella stringa ''dest''
|}
 
Line 95 ⟶ 99:
|-
|<code>errno_t strcpy_s(char *restrict s1, rsize_t s1max, const char *restrict s2);</code>
|variante di <code>[[strcpy]]</code> che include dei controlli sulla lunghezza delle stringhe
|ISO/IEC WDTR 24731
|-
Line 102 ⟶ 106:
|[[GNU]]
|-
|<code>void *memccpy(void *dest, const void *src, int c, size_t n);</code>
);</code>
|copia fino ad n byte fra due aree di memoria non sovrapposte, fermandosi quando viene trovato il byte c
|UNIX 98?
|-
|<code>int *strerror_r(int, char *, size_t);</code>
|restituisce una rappresentazione in stringa di un numero di errore (si veda [[errno]]) (thread-safe; alcune differenze semantiche fra la specifica [[GNU]] e [[XSI]]/[[POSIX]])
|[[GNU]], [[POSIX]]
|-
|<code>size_t strlcpy(char *dest, const char *src, size_t n);</code>
|variante di <code>[[strcpy]]</code> che comprende controlli sulla lunghezza della stringa
|originariamente [[OpenBSD]], ora anche [[FreeBSD]], [[Solaris (sistema operativo)|Solaris]], [[Mac OS XmacOS|OS X]]
|-
|<code>char *strtok_r(char *, const char *, char **);</code>
Line 123 ⟶ 126:
|varie distribuzioni BSD, [[Solaris (sistema operativo)|Solaris]], [[Linux]]
|}
 
==Collegamenti esterni==
* {{en}} [http://linux.die.net/man/3/string] string(3) - operazioni su stringhe. [[Linux]] [[Man (Unix) |man page]].
 
==Altri progetti==
{{interprogetto|b=C/Appendice/Librerie standard}}
 
==Collegamenti esterni==
* {{cita web|https://linux.die.net/man/3/string|Operazioni su stringhe|lingua=en}}
 
{{Portale|Informatica}}
Line 135 ⟶ 138:
 
[[en:C string handling]]
[[th:การจัดการสตริงในภาษาซี]]