Stringa (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
Riga 6:
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).
 
In molti linguaggi di programmazione, come ad esempio [[Linguaggio di programmazione Java|Java]] oppure [[C sharp|C#]] la stringa, per motivi di sicurezza, è un oggetto non modificabile (in [[Linguaggio di programmazione Java|Java]] è addirittura non [[ereditarietà (informatica)|estendibile]]). Questo vuol dire che ogni qualvolta viene assegnato un nuovo valore ad una stringa (operazione di concatenazione, rimozione o aggiunta caratteri) in realtà vengono create nuove stringhe.
 
Ad esempio, in C++, l'istruzione
<presource lang="cpp">string a = "abc" + "def";</presource>
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)|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" ==