Stringa (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m fix link |
m Annullata la modifica di 5.172.64.159 (discussione), riportata alla versione precedente di Simone Biancolilla Etichetta: Rollback |
||
(19 versioni intermedie di 13 utenti non mostrate) | |||
Riga 1:
{{F|programmazione|maggio 2010}}
Una '''stringa''' in [[informatica]] è una
▲Una '''stringa''' in [[informatica]] è una cassettiera con un ordine prestabilito. Sequenze di altri tipi di dato sono i cassetti o in inglese, [[array]].
== Caratteristiche ==
Può essere composta da [[byte]] nel caso delle stringhe con codifica [[ASCII]] o da [[word]] per le codifiche [[Unicode
▲Può essere composta da [[byte]] nel caso delle stringhe con codifica [[ASCII]] o da [[word]] per le codifiche [[Unicode]] e [[UTF]].
Spesso la sequenza di dati di cui è composta una stringa viene conclusa con un carattere speciale denominato [[NULL]] (come nel [[linguaggio C]]) che serve ad indicare la fine della stringa, anche se esistono diversi metodi di rappresentazione, alcuni dei quali utilizzano un diverso terminatore oppure si appoggiano ad altri sistemi per la determinazione della lunghezza (ad esempio un dato contenente la lunghezza della stringa immagazzinato a parte).
Riga 12 ⟶ 10:
Ad esempio, in C++, l'istruzione
<
in realtà crea 4 stringhe: la stringa per rappresentare ''a'', quella per rappresentare ''"abc"'', quella per rappresentare ''"def"'' e infine quella per immagazzinare il valore temporaneo ''"abcdef"''.
Proprio per questo motivo linguaggi come [[Java (linguaggio di programmazione)|Java]] e [[C sharp|C#]] mettono a disposizione altri oggetti, come '''StringBuffer''' o '''StringBuilder''' che permettono operazioni sulle stringhe più veloci e meno onerose in termini di utilizzo della memoria.
== Tipo di dato "stringa" ==
Un '''tipo di dato stringa''' è un [[tipo di dato]] modellato sull'idea di una stringa formale. Le stringhe sono un tipo di dati talmente importante e utile che fanno parte di quasi tutti i [[linguaggio di programmazione|linguaggi di programmazione]]. In alcuni linguaggi sono disponibili solo tipi primitivi e in altri come tipi compositi.
Riga 23 ⟶ 20:
I tipi di dato stringa differiscono anche in base all'alfabeto su cui sono definite.
Alcune stringhe sono progettate per funzionare su un singolo alfabeto prefissato (come l'[[alfabeto latino]] o non come i caratteri rappresentabili dal codice [[ASCII]]) e altre su un alfabeto arbitrario.
Per esempio, nella libreria standard del [[C++]] le stringhe sono parametrizzate dall'alfabeto dei caratteri.
Riga 32 ⟶ 29:
Le implementazioni moderne usano spesso l'ampio set di caratteri definito come [[Unicode]] insieme con una varietà di complesse codifiche come l'[[UTF-8]] e l'[[UTF-16]].
La gran parte delle implementazioni delle stringhe
La lunghezza di una stringa può essere memorizzata implicitamente utilizzando uno speciale ''carattere di terminazione''. Questo carattere è spesso il carattere nullo (null character o NULL) avente codice zero, convenzione questa usata e perpetuata dal popolare linguaggio di programmazione [[C (linguaggio)|C]]. La lunghezza di una stringa può anche venir memorizzata esplicitamente, ad esempio attaccando alla stringa un prefisso con un valore intero, convenzione questa usata ad esempio in [[Pascal (linguaggio)|Pascal]]. Si noti che nel caso delle stringhe terminate il carattere di terminazione non sarà mai ammissibile come contenuto di una stringa.
Riga 65 ⟶ 62:
== Algoritmi per le stringhe ==
Sono stati studiati molti [[algoritmi]] per la manipolazione delle stringhe i quali si distinguono per finalità e per diverse scelte di compromesso di fronte ad esigenze contrastanti come l'ampiezza della portata e l'efficienza.
Riga 78 ⟶ 74:
== Linguaggi e programmi di utilità orientati all'elaborazione di stringhe ==
Le stringhe costituiscono un tipo di dati tanto ampiamente utilizzato da indurre lo sviluppo di numerosi linguaggi finalizzati alla facilitazione delle elaborazioni delle stringhe più richieste dalle applicazioni. Tra questi vi sono:
Riga 93 ⟶ 88:
I recenti [[linguaggio di scripting|linguaggi di scripting]], come [[Perl]], [[Python]], [[Ruby (linguaggio di programmazione)|Ruby]] e [[Tcl]] si servono di [[espressione regolare|espressioni regolari]] per facilitare le manovre sui testi.
==
* [[Stringa (linguaggi formali)]]▼
* [[Stringa vuota]]
== Altri progetti ==
{{interprogetto|preposizione=sulla|wikt=stringa|wikt_etichetta=stringa}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|string|string}}
▲* [[Stringa (linguaggi formali)]]
{{Controllo di autorità}}
{{Portale|informatica}}
|