Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Char e String | Tipi di Dati e Variabili
Fondamenti Di C

bookChar e String

In C non esiste un tipo di dato dedicato alle stringhe (testo). Il testo viene invece memorizzato come array di char, dove ogni elemento contiene un singolo carattere. Ad esempio, il testo c<>definity viene rappresentato come una sequenza di caratteri memorizzati in un array di questo tipo.

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

Potresti notare che il testo "c<>definity" ha 11 caratteri, ma l'array contiene 12 elementi. Questo elemento aggiuntivo memorizza il terminatore nullo \0, che indica la fine di una stringa in C.

Non si tratta del numero zero, ma di un carattere speciale non stampabile (codice ASCII 0) che segnala al programma dove termina la stringa.

Note
Nota

Assicurarsi sempre che l'array di caratteri sia di un elemento più grande rispetto al testo che contiene, per includere questo terminatore.

È fondamentale riconoscere che 'x' e "x" non sono la stessa cosa.

Una stringa è composta da caratteri. Ricorda sempre di terminare una stringa con il carattere \0.

  • 'x' è semplicemente una costante di tipo char;
  • "x" è una stringa, un array di valori char, o, in questo caso, {'x', '\0'}.
Note
Nota

Non confondere '\0', '0' e "0". '\0' è il carattere nullo (ASCII 0), '0' è la cifra zero (ASCII 48), e "0" è una stringa che contiene la cifra zero più il terminatore \0.

Output di stringhe

In C, quando si desidera visualizzare stringhe (array di valori char), si utilizza lo specificatore %s. Questo specificatore indica alla funzione printf() quale tipo di informazione aspettarsi. Utilizzando %s, informiamo la funzione printf() che riceverà una stringa.

main.c

main.c

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

Il linguaggio C include una libreria standard per la manipolazione delle stringhe, <string.h>. All'interno di questa libreria, è presente una funzione che conta il numero di caratteri in una stringa:

main.c

main.c

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
Nota

Ricorda, anche uno spazio è un carattere e richiede una propria posizione nell'array. Ad esempio: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Utilizzando un indice, è possibile accedere agli elementi della stringa. Poiché le stringhe sono essenzialmente array di char, è anche possibile modificare i singoli caratteri tramite i loro indici.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

Quale delle seguenti dichiara correttamente una stringa in C?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.63

bookChar e String

Scorri per mostrare il menu

In C non esiste un tipo di dato dedicato alle stringhe (testo). Il testo viene invece memorizzato come array di char, dove ogni elemento contiene un singolo carattere. Ad esempio, il testo c<>definity viene rappresentato come una sequenza di caratteri memorizzati in un array di questo tipo.

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

Potresti notare che il testo "c<>definity" ha 11 caratteri, ma l'array contiene 12 elementi. Questo elemento aggiuntivo memorizza il terminatore nullo \0, che indica la fine di una stringa in C.

Non si tratta del numero zero, ma di un carattere speciale non stampabile (codice ASCII 0) che segnala al programma dove termina la stringa.

Note
Nota

Assicurarsi sempre che l'array di caratteri sia di un elemento più grande rispetto al testo che contiene, per includere questo terminatore.

È fondamentale riconoscere che 'x' e "x" non sono la stessa cosa.

Una stringa è composta da caratteri. Ricorda sempre di terminare una stringa con il carattere \0.

  • 'x' è semplicemente una costante di tipo char;
  • "x" è una stringa, un array di valori char, o, in questo caso, {'x', '\0'}.
Note
Nota

Non confondere '\0', '0' e "0". '\0' è il carattere nullo (ASCII 0), '0' è la cifra zero (ASCII 48), e "0" è una stringa che contiene la cifra zero più il terminatore \0.

Output di stringhe

In C, quando si desidera visualizzare stringhe (array di valori char), si utilizza lo specificatore %s. Questo specificatore indica alla funzione printf() quale tipo di informazione aspettarsi. Utilizzando %s, informiamo la funzione printf() che riceverà una stringa.

main.c

main.c

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

Il linguaggio C include una libreria standard per la manipolazione delle stringhe, <string.h>. All'interno di questa libreria, è presente una funzione che conta il numero di caratteri in una stringa:

main.c

main.c

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
Nota

Ricorda, anche uno spazio è un carattere e richiede una propria posizione nell'array. Ad esempio: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Utilizzando un indice, è possibile accedere agli elementi della stringa. Poiché le stringhe sono essenzialmente array di char, è anche possibile modificare i singoli caratteri tramite i loro indici.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

Quale delle seguenti dichiara correttamente una stringa in C?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6
some-alt