Che cos'è una matrice di stringhe?

La stringa è una raccolta di caratteri, una matrice di una stringa è una matrice di matrici di caratteri. Ogni stringa è terminata con un carattere null. Un array di una stringa è una delle applicazioni più comuni di array bidimensionali.

scanf () è la funzione di input con l'identificatore di formato% s per leggere una stringa come input dal terminale. Ma lo svantaggio è che termina non appena incontra lo spazio. Per evitare ciò, ottiene la funzione () che può leggere qualsiasi numero di stringhe inclusi gli spazi bianchi.

Sting è una matrice di caratteri terminata con il carattere speciale noto come carattere null ("\ 0").

Sintassi

datatype name_of_the_array(size_of_elements_in_array);
char str_name(size);

Esempio

datatype name_of_the_array ( ) = ( Elements of array );
char str_name(8) = “Strings”;

Str_name è il nome della stringa e la dimensione definisce la lunghezza della stringa (numero di caratteri).

Una stringa può essere definita come una matrice di caratteri unidimensionale, quindi una matrice di stringhe è una matrice di caratteri bidimensionale.

Sintassi

char str_name(size)(max);

Sintassi

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

In alternativa, possiamo persino dichiararlo come

Sintassi

char str_arr(2)(6) =(“gouri”, ”ram”);

Dalla sintassi data ci sono due pedici il primo è per quante stringhe dichiarare e il secondo è per definire la lunghezza massima dei caratteri che ogni stringa può memorizzare, incluso il carattere null. Il concetto C spiega già che ogni carattere accetta 1 byte di dati durante l'allocazione della memoria, l'esempio di sintassi sopra riportato occupa 2 * 6 = 12 byte di memoria.

Esempio

char str_name(8) = ('s', 't', 'r', 'i', 'n', 'g', 's', '\0');
By the rule of initialization of array, the above declaration can be written as
char str_name() = “Strings”;

0 1 2 3 4 5 6 7 Indice

Variabili 2000 2001 2002 2003 2004 2005 2006 2007 Indirizzo

Questa è una rappresentazione di come le stringhe sono allocate in memoria per la stringa sopra dichiarata in C.

A ciascun carattere della stringa è assegnato un indice e un indirizzo assegnati a ciascun carattere della stringa. Nella rappresentazione sopra, il carattere null (“\ 0”) viene automaticamente inserito dal compilatore C alla fine di ogni stringa quando inizializza l'array sopra dichiarato. Di solito, le stringhe vengono dichiarate usando virgolette doppie secondo le regole di inizializzazione delle stringhe e quando il compilatore incontra virgolette doppie aggiunge automaticamente il carattere null alla fine della stringa.

Dall'esempio precedente, poiché sappiamo che il nome dell'array punta allo 0 ° indice e indirizzo 2000, poiché sappiamo già che l'indicizzazione di un array inizia da 0. Pertanto,

str_name + 0 points to the character “s”
str_name + 1 points to the character “t”

Come nell'esempio sopra è per un array monodimensionale, quindi il puntatore punta a ciascun carattere della stringa.

Esempi di stringhe di array in C

#include
int main()
(
char name(10);
printf("Enter the name: ");
fgets(name, sizeof(name), stdin);
printf("Name is : ");
puts(name);
return 0;
)

Ora per le matrici bidimensionali, abbiamo la sintassi e l'allocazione di memoria seguenti. Per questo, possiamo prenderlo come rappresentazione di riga e colonna (formato tabella).

char str_name(size)(max);

In questa rappresentazione di tabella, ogni riga (primo pedice) definisce il numero di stringhe da memorizzare e la colonna (secondo pedice) definisce la lunghezza massima delle stringhe.

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

In alternativa, possiamo persino dichiararlo come

Sintassi:

char str_arr(2)(8) =(“gouri”, ”ram”);

Indice

Righe

0 1 2 3 4 5 6 7
0gourio\ 0\ 0\ 0
1run'm\ 0\ 0\ 0\ 0\ 0

Dall'esempio sopra come sappiamo che il nome dell'array punta alla 0a stringa. Perciò,

str_name + 0 punti alla 0a stringa "gouri"

str_name + 1 punti alla prima stringa "ram"

Come nell'esempio sopra è per array bidimensionali, quindi il puntatore punta a ciascuna stringa dell'array.

#include
int main()
(
int i;
char name(2)(8) = (
“gouri”,
“ram”
);
for (i = 0; i < 2; i++)
(
printf(“String = %s \n”, name + i, name + i);
)
return 0;
)

Produzione:

Funzioni delle stringhe

strcpy (s1, s2); questa funzione copia la stringa s2 innto in sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); questa funzione concatena le stringhe s1 e s2, la stringa s2 viene aggiunta alla fine della stringa s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); questa funzione restituisce la lunghezza della stringa s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Questa funzione confronta entrambe le stringhe s1 e s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); queste funzioni trovano la prima occorrenza del carattere dato ch nella stringa s1 e il puntatore punta a questo carattere nella stringa.

strstr (s1, s2); questo trova la prima occorrenza della stringa s2 nella stringa s1 e il puntatore punta alla stringa s2 nella stringa s1.

Con alcune operazioni non valide sono str_arr (0) = "gouri"; in questa operazione il puntatore della stringa è assegnato al puntatore costante che non è valido e non è possibile, poiché il nome dell'array è un puntatore costante.

Per evitare ciò, possiamo assegnare str_arr usando strcpy (str_arr (0), "gouri").

Conclusione

Un array stesso definisce un elenco di stringhe. Dall'introduzione di cui sopra, possiamo concludere che la dichiarazione e l'inizializzazione delle stringhe sono diverse come abbiamo visto per ogni stringa che il compilatore aggiunge carattere null quando legge la stringa come input. Esistono molte funzioni di gestione delle stringhe, alcune funzioni con esempi sono spiegate sopra. Pertanto le matrici della stringa sono facili come le matrici.

Articoli consigliati

Questa è una guida a una matrice di stringhe in C. Qui discutiamo le basi della matrice di stringhe, esempio di stringa di matrice in C e funzioni delle stringhe. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Array di stringhe in C #
  2. Matrice multidimensionale in C
  3. Matrici in programmazione C.
  4. Matrici 2D in C #
  5. Come funziona l'array in Unix con la sintassi?

Categoria: