Programmazione per computer - Stringhe

Durante la nostra discussione su characters, abbiamo appreso che il tipo di dati carattere si occupa di un singolo carattere e puoi assegnare qualsiasi carattere dalla tastiera a una variabile del tipo di carattere.

Ora, andiamo un po 'più avanti e consideriamo una situazione in cui dobbiamo memorizzare più di un carattere in una variabile. Abbiamo visto che la programmazione in C non consente di memorizzare più di un carattere in una variabile di tipo carattere. Quindi le seguenti istruzioni non sono valide nella programmazione C e producono errori di sintassi:

char ch1 = 'ab';
char ch2 = '10';

Abbiamo anche visto come utilizzare il concetto di arraysper memorizzare più di un valore di tipo di dati simile in una variabile. Ecco la sintassi per memorizzare e stampare cinque numeri in un array di tipo int:

#include <stdio.h>

main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;
        
   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

Ora, definiamo un array di cinque caratteri nello stesso modo in cui abbiamo fatto per i numeri e proviamo a stamparli -

#include <stdio.h>

main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;
        
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Qui abbiamo usato% c per stampare il valore del carattere. Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Se hai finito con l'esempio sopra, penso che tu abbia capito come funzionano le stringhe nella programmazione C, perché strings in C are represented as arrays of characters. La programmazione in C ha semplificato l'assegnazione e la stampa delle stringhe. Controlliamo ancora una volta lo stesso esempio con una sintassi semplificata:

#include <stdio.h>

main() {
   char ch[5] = "Hello";
   int i = 0;
    
   /* Print as a complete string */
   printf("String = %s\n", ch);  

   /* Print character by character */
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Qui abbiamo usato% s per stampare l'intero valore della stringa usando il nome dell'array ch, che in realtà è l'inizio dell'indirizzo di memoria che contiene ch variabile come mostrato di seguito -

Sebbene non sia visibile dagli esempi precedenti, un programma C assegna internamente un carattere null '\0'come ultimo carattere di ogni stringa. Indica la fine della stringa e significa che se si desidera memorizzare una stringa di 5 caratteri in un array, è necessario definire una dimensione dell'array di 6 come buona pratica, anche se C non se ne lamenta.

Se il codice precedente viene compilato ed eseguito, produce il seguente risultato:

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Concetti di base sulle stringhe

Sulla base della discussione sopra, possiamo concludere i seguenti punti importanti sulle stringhe nel linguaggio di programmazione C:

  • Le stringhe in C sono rappresentate come matrici di caratteri.

  • Possiamo costituire una stringa nella programmazione C assegnando carattere per carattere a una matrice di caratteri.

  • Possiamo costituire una stringa nella programmazione C assegnando una stringa completa racchiusa tra virgolette doppie.

  • Possiamo stampare una stringa carattere per carattere utilizzando un indice di matrice o una stringa completa utilizzando un nome di matrice senza pedice.

  • L'ultimo carattere di ogni stringa è un carattere nullo, ovvero ‘\0’.

  • La maggior parte dei linguaggi di programmazione fornisce funzioni incorporate per manipolare le stringhe, cioè puoi concatenare stringhe, puoi cercare da una stringa, puoi estrarre sottostringhe da una stringa, ecc. Per ulteriori informazioni, puoi controllare il nostro tutorial dettagliato su Programmazione C o qualsiasi altro linguaggio di programmazione.

Stringhe in Java

Sebbene sia possibile utilizzare array di caratteri per memorizzare le stringhe, Java è un linguaggio di programmazione avanzato ei suoi progettisti hanno cercato di fornire funzionalità aggiuntive. Java fornisce le stringhe come tipo di dati incorporato come qualsiasi altro tipo di dati. Significa che puoi definire le stringhe direttamente invece di definirle come array di caratteri.

Di seguito è riportato il programma equivalente scritto in Java. Java utilizza l'estensionenew operatore per creare variabili stringa come mostrato nel programma seguente.

Puoi provare a eseguire il seguente programma per vedere l'output:

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");  
      System.out.println( "String = " + str );
   }
}

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

String = Hello

Stringhe in Python

Creare stringhe in Python è semplice come assegnare una stringa in una variabile Python usando virgolette singole o doppie.

Di seguito è riportato un semplice programma che crea due stringhe e le stampa utilizzando la funzione print () -

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1 = ", var1
print "var2 = ", var2

Quando il programma di cui sopra viene eseguito, produce il seguente risultato:

var1 =  Hello World!
var2 =  Python Programming

Python non supporta il tipo di carattere; queste sono trattate come stringhe di lunghezza uno, quindi considerate anche una sottostringa.

Per accedere alle sottostringhe, usa le parentesi quadre per affettare insieme all'indice o agli indici per ottenere la tua sottostringa. Dai un'occhiata al seguente segmento di codice:

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Quando il codice sopra viene eseguito, produce il seguente risultato:

var1[0]:  H
var2[1:5]:  ytho