Kaj je niz nizov?

Niz je zbirka znakov, matrika niza je matrika nizov znakov. Vsak niz je zaključen z ničelnim znakom. Niz nizov je ena najpogostejših aplikacij dvodimenzionalnih nizov.

scanf () je vhodna funkcija s specifikatorjem forme% s, da bere niz kot vhod iz terminala. Toda pomanjkljivost je, da preneha takoj, ko naleti na prostor. Da bi se temu izognili, dobi funkcijo (), ki lahko bere poljubno število nizov, vključno z belimi presledki.

Sting je niz znakov, ki se konča s posebnim znakom, znanim kot ničelni znak ("\ 0").

Sintaksa

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

Primer

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

Str_name je ime niza in velikost določa dolžino niza (število znakov).

String lahko definiramo kot dvodimenzionalni niz znakov, zato je matrika nizov dvodimenzionalni niz znakov.

Sintaksa

char str_name(size)(max);

Sintaksa

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

Lahko pa jo celo označimo kot

Sintaksa

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

Iz dane skladnje obstajata dva naročila, prvi je za koliko nizov, ki jih je treba prijaviti, drugi pa je določiti največjo dolžino znakov, ki jih lahko shrani vsak niz, vključno z ničelnim znakom. Koncept C že razlaga, da vsak znak pri dodeljevanju pomnilnika zasede 1 bajt podatkov, zgornji primer sintakse pa zaseda 2 * 6 = 12 bajtov pomnilnika.

Primer

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 Kazalo

Spremenljivke 2000 2001 2002 2003 2004 2005 2006 2007 Naslov

To je prikaz, kako so nizi razporejeni v pomnilniku za zgoraj deklarirani niz v C.

Vsak znak v nizu ima indeks in naslov, dodeljen vsakemu znaku v nizu. V zgornji predstavitvi ničelni znak ("\ 0") prevajalnik C samodejno postavi na konec vsakega niza, ko inicializira zgoraj deklarirano matriko. Običajno se strune deklarirajo z dvojnimi narekovaji v skladu s pravili inicializacije nizov in ko prevajalnik naleti na dvojne navedbe, na koncu niza samodejno doda ničelni znak.

Iz zgornjega primera, saj vemo, da ime matrike kaže na 0. indeks in naslov 2000, kot že poznamo, se indeksiranje matrike začne z 0. Zato

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

Kot je zgornji primer za enodimenzionalno matriko, tako kazalec kaže na vsak znak niza.

Primeri nizov nizov na C

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

Zdaj za dvodimenzionalne matrike imamo naslednjo skladnjo in razporeditev pomnilnika. Za to lahko vzamemo kot predstavitev vrstic in stolpcev (oblika tabele).

char str_name(size)(max);

V tej predstavitvi tabele vsaka vrstica (prvi podpis) določa kot število nizov, ki jih je treba shraniti, stolpec (drugi podpis) pa največjo dolžino nizov.

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

Lahko pa jo celo označimo kot

Sintaksa:

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

Kazalo

Vrstice

0 1 2 3 4 5 6 7
0gourjaz\ 0\ 0\ 0
1ram\ 0\ 0\ 0\ 0\ 0

Iz zgornjega primera, kot vemo, da ime matrike kaže na 0. niz. Zato je dr.

str_name + 0 točk do 0. niza "gouri"

str_name + 1 točka do 1. niza "ram"

Kot je zgornji primer za dvodimenzionalne matrike, tako kazalec kaže na vsak niz matrike.

#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;
)

Izhod:

Funkcije strun

strcpy (s1, s2); ta funkcija kopira niz s2 v sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); ta funkcija povezuje struni s1 in s2, na koncu niza s1 se doda niz s2.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); ta funkcija vrne dolžino niza s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Ta funkcija primerja oba niza s1 in s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); te funkcije najdejo prvi pojav danega znaka ch v nizu s1 in kazalec kaže na ta znak v nizu.

strstr (s1, s2); to ugotovi prvi pojav niza s2 v nizu s1 in kazalec kaže na niz s2 v nizu s1.

Z nekaterimi neveljavnimi operacijami so str_arr (0) = "gouri"; v tej operaciji je kazalec niza dodeljen stalnemu kazalcu, ki je neveljaven in ni mogoč, ker je ime matrice stalen kazalec.

Da bi se temu izognili, lahko dodamo str_arr z uporabo strcpy (str_arr (0), "gouri").

Zaključek

Niz sam definira kot seznam nizov. Iz zgornjega uvoda lahko sklepamo, da sta deklaracija in inicializacija strun različni, kot smo videli za vsak niz, da prevajalnik doda ničelni znak, ko niz bere kot vhod. Obstaja veliko funkcij za obdelavo vrvic, nekaj funkcij s primeri je razloženo zgoraj. Zato so nizi niza enostavni kot nizi.

Priporočeni članki

To je vodnik za Niz nizov v C. Tukaj razpravljamo o osnovah Array Niz, Primer Array String v C in Funkcije nizov. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. Niz nizov v C #
  2. Večdimenzionalni niz na C
  3. Nizi v C programiranju
  4. 2D matrike v C #
  5. Kako Array deluje v Unixu s sintakso?