b'\n_START_ARTICLE_\nStringa (informatica)\n_START_SECTION_\nCaratteristiche\n_START_PARAGRAPH_\nPu\xc3\xb2 essere composta da byte nel caso delle stringhe con codifica ASCII o da word per le codifiche Unicode e UTF._NEWLINE_Spesso la sequenza di dati di cui \xc3\xa8 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)._NEWLINE_In molti linguaggi di programmazione, come ad esempio Java oppure C# la stringa, per motivi di sicurezza, \xc3\xa8 un oggetto non modificabile (in Java \xc3\xa8 addirittura non estendibile). Questo vuol dire che ogni qualvolta viene assegnato un nuovo valore ad una stringa (operazione di concatenazione, rimozione o aggiunta caratteri) in realt\xc3\xa0 vengono create nuove stringhe._NEWLINE_Ad esempio, in C++, l\'istruzione_NEWLINE_string a = "abc" + "def";_NEWLINE_in realt\xc3\xa0 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"._NEWLINE_Proprio per questo motivo linguaggi come Java e C# mettono a disposizione altri oggetti, come StringBuffer o StringBuilder che permettono operazioni sulle stringhe pi\xc3\xb9 veloci e meno onerose in termini di utilizzo della memoria.\n_START_SECTION_\nTipo di dato "stringa"\n_START_PARAGRAPH_\nUn tipo di dato stringa \xc3\xa8 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 linguaggi di programmazione. In alcuni linguaggi sono disponibili solo tipi primitivi e in altri come tipi compositi._NEWLINE_Mentre le stringhe formali possono avere una lunghezza arbitraria (ma finita), le stringhe dei linguaggi di programmazione hanno lunghezza limitata. In generale, ci sono due categorie di tipi di dati stringa: le stringhe a lunghezza fissa, che hanno una lunghezza massima prefissata, e le stringhe a lunghezza variabile, la cui lunghezza pu\xc3\xb2 essere modificata con apposite istruzioni. La maggior parte delle stringhe nei moderni linguaggi di programmazione sono a lunghezza variabile. Nonostante il nome, anche le stringhe a lunghezza variabile hanno un limite di lunghezza; tuttavia, in generale, il limite dipende solamente dalla quantit\xc3\xa0 di memoria disponibile nel computer._NEWLINE_I tipi di dato stringa differiscono anche in base all\'alfabeto su cui sono definite._NEWLINE_Alcune stringhe sono progettate per funzionare su un singolo alfabeto prefissato (come l\'alfabeto latino o come i caratteri rappresentabili dal codice ASCII) e altre su un alfabeto arbitrario._NEWLINE_Per esempio, nella libreria standard del C++ le stringhe sono parametrizzate dall\'alfabeto dei caratteri.\n_START_SECTION_\nStringa vuota\n_START_PARAGRAPH_\nCon stringa vuota si intende una stringa di lunghezza nulla, cio\xc3\xa8 una stringa che non contiene nessun carattere. Pu\xc3\xb2 essere considerata come l\'analogo per le stringhe di ci\xc3\xb2 che lo zero \xc3\xa8 per i numeri._NEWLINE_In genere, nei pi\xc3\xb9 comuni linguaggi di programmazione, la stringa vuota viene indicata con la notazione:_NEWLINE_""_NEWLINE_In C e C++, poich\xc3\xa9 le stringhe sono rappresentate come array di caratteri, si pu\xc3\xb2 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.'