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 |
0 | g | o | u | r | jaz | \ 0 | \ 0 | \ 0 |
1 | r | a | m | \ 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č -
- Niz nizov v C #
- Večdimenzionalni niz na C
- Nizi v C programiranju
- 2D matrike v C #
- Kako Array deluje v Unixu s sintakso?