Stringa (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullata la modifica di 5.172.64.159 (discussione), riportata alla versione precedente di Simone Biancolilla
Etichetta: Rollback
 
(16 versioni intermedie di 10 utenti non mostrate)
Riga 3:
 
== Caratteristiche ==
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 10:
 
Ad esempio, in C++, l'istruzione
<sourcesyntaxhighlight lang="cpp">string a = "abc" + "def";</sourcesyntaxhighlight>
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.
Riga 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 somiglianosomiglia ad [[array]], i cui elementi contengono i ''codici'' corrispondenti ai caratteri nel corrispondente ''set di caratteri''. La principale differenza è che in alcune codifiche l'equivalente di un singolo carattere logico può necessitare di più elementi dell'array. Un esempio in questo senso è la codifica [[UTF-8]] in cui un singolo carattere logico può richiedere fino a quattro byte. In questi casi la lunghezza logica della stringa differisce da quella dell'array.
 
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 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.
 
== StringaVoci vuotacorrelate ==
* [[Stringa (linguaggi formali)]]
Con '''stringa vuota''' si intende una stringa di lunghezza nulla, cioè una stringa che non contiene nessun [[carattere (informatica)|carattere]]. Può essere considerata come l'analogo per le stringhe di ciò che lo [[zero]] è per i [[numero|numeri]].
* [[Stringa vuota]]
 
== Altri progetti ==
In genere, nei più comuni [[linguaggi di programmazione]], la stringa vuota viene indicata con la notazione:
{{interprogetto|preposizione=sulla|wikt=stringa|wikt_etichetta=stringa}}
""
 
== Collegamenti esterni ==
In C e C++, poiché le stringhe sono rappresentate come [[array]] di caratteri, si può ottenere la stringa vuota inserendo, nella prima cella dell'array, il carattere [[NULL]], il quale viene solitamente utilizzato come indicatore di fine stringa ed ha codifica 0.
* {{Collegamenti esterni}}
 
* {{FOLDOC|string|string}}
== Voci correlate ==
* [[Stringa (linguaggi formali)]]
 
{{Controllo di autorità}}
{{Portale|informatica}}