logo

Matriu de cadenes en C

A la programació C String és una matriu 1-D de caràcters i es defineix com una matriu de caràcters. Però una matriu de cadenes en C és una matriu bidimensional de tipus de caràcters. Cada cadena acaba amb un caràcter nul ( ). És una aplicació d'una matriu 2D.

Sintaxi:



unió vs unió tots
char variable_name[r] = {list of string};>

Aquí,

    nom_var és el nom de la variable a C. r és el nombre màxim de valors de cadena que es poden emmagatzemar en una matriu de cadenes. c és el nombre màxim de valors de caràcters que es poden emmagatzemar a cada matriu de cadenes.

Exemple:

C








// C Program to print Array> // of strings> #include> // Driver code> int> main()> {> >char> arr[3][10] = {>'Geek'>,> >'Geeks'>,>'Geekfor'>};> >printf>(>'String array Elements are: '>);> > >for> (>int> i = 0; i <3; i++)> >{> >printf>(>'%s '>, arr[i]);> >}> >return> 0;> }>

>

arbre binari vs bst
>

Sortida

String array Elements are: Geek Geeks Geekfor>

A continuació es mostra la representació del programa anterior

Representació de memòria de matriu de cadenes

Tenim 3 files i 10 columnes especificades a la nostra matriu de cadenes, però a causa de la preespecificació, la mida de la matriu de cadenes el consum d'espai és alt. Per tant, per evitar un gran consum d'espai al nostre programa, podem utilitzar una matriu de punters en C.

Operacions no vàlides en matrius de cadenes

No podem canviar ni assignar els valors directament a una matriu de cadenes en C.

Exemple:

 char arr[3][10] = {'Geek', 'Geeks', 'Geekfor'};>

Aquí, arr[0] = GFG; // Això donarà un error que diu assignació a l'expressió amb un tipus de matriu.

noms de ciutats dels EUA

Per canviar els valors podem utilitzar la funció strcpy() a C

 strcpy(arr[0],'GFG'); // This will copy the value to the arr[0].>

Matriu de punters de cadenes

En C podem utilitzar una matriu de punters. En lloc de tenir una matriu de caràcters bidimensionals, podem tenir una matriu unidimensional de punters. Aquí s'emmagatzema el punter al primer caràcter del literal de cadena.

Sintaxi:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' };>
Matriu de punters de cadenes

A continuació es mostra el programa C per imprimir una matriu de punters:

C




sql concat
// C Program to print Array> // of Pointers> #include> // Driver code> int> main()> {> >char> *arr[] = {>'Geek'>,>'Geeks'>,>'Geekfor'>};> >printf>(>'String array Elements are: '>);> > >for> (>int> i = 0; i <3; i++)> >{> >printf>(>'%s '>, arr[i]);> >}> >return> 0;> }>

>

>

Sortida

String array Elements are: Geek Geeks Geekfor>