Jousto C:ssä

Jousto C:ssä

C-ohjelmoinnissa String on 1-D merkkijono ja se määritellään merkkijonoksi. Mutta C:n merkkijonojoukko on kaksiulotteinen merkkityyppien joukko. Jokainen merkkijono päätetään nollamerkillä ( ). Se on 2d-taulukon sovellus.

Syntaksi:

char variable_name[r] = {list of string}; 

Tässä,

    var_nimi on C:n muuttujan nimi. r on merkkijonoarvojen enimmäismäärä, joka voidaan tallentaa merkkijonotaulukkoon. c on merkkiarvojen enimmäismäärä, joka voidaan tallentaa kuhunkin merkkijonotaulukkoon.

Esimerkki:

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;> }>

Lähtö

String array Elements are: Geek Geeks Geekfor 

Alla on esitys yllä olevasta ohjelmasta

Merkkijonotaulukon muistiesitys

Meillä on 3 riviä ja 10 saraketta määritettynä Array of Stringissa, mutta johtuen ennalta määritellystä merkkijonotaulukon koosta tilankulutus on suuri. Joten, jotta voimme välttää suuren tilankulutuksen ohjelmassamme, voimme käyttää osoittimia C:ssä.

Virheelliset toiminnot merkkijonotaulukoissa

Emme voi suoraan muuttaa tai määrittää arvoja C:n merkkijonojoukolle.

Esimerkki:

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

Tässä arr[0] = GFG; // Tämä antaa virheilmoituksen, jossa sanotaan, että lauseke määritetään taulukkotyypillä.

Arvojen muuttamiseksi voimme käyttää strcpy()-funktiota C:ssä

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

Joukko osoittimia

C:ssä voimme käyttää osoittimien taulukkoa. Kaksiulotteisen merkkijonon sijaan meillä voi olla yksiulotteinen osoittimien matriisi. Tässä tallennetaan osoitin merkkijonoliteraalin ensimmäiseen merkkiin.

Syntaksi:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Joukko osoittimia

Alla on C-ohjelma osoittimien joukon tulostamiseksi:

C




// 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;> }>

Lähtö

String array Elements are: Geek Geeks Geekfor