Što je niz struna?

Niz je skup znakova, niz niza niz je nizova znakova. Svaki je niz završen s null znakom. Niz nizova jedna je od najčešćih aplikacija dvodimenzionalnih nizova.

scanf () je funkcija unosa sa specifikacijom formata% s za čitanje niza kao ulaza sa terminala. Ali nedostatak je što prestaje čim naiđe na prostor. Da biste izbjegli ovo dobiva () funkciju koja može čitati bilo koji broj žica, uključujući bijele razmake.

Sting je niz znakova koji završava posebnim znakom poznatim kao nulani znak ("\ 0").

Sintaksa

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

Primjer

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

Str_name je naziv niza, a veličina definira duljinu niza (broj znakova).

String se može definirati kao jednodimenzionalni niz znakova, tako da je niz stringova dvodimenzionalni niz znakova.

Sintaksa

char str_name(size)(max);

Sintaksa

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

Alternativno, možemo ga čak proglasiti i kao

Sintaksa

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

Iz dane sintakse postoje dvije pretplate, prva je za koliko niza deklarirati, a druga je definirati maksimalnu duljinu znakova koje svaki niz može pohraniti, uključujući null znak. Koncept C već objašnjava da svaki znak zauzima 1 bajt podataka tijekom dodjele memorije, gornji primjer sintakse zauzima 2 * 6 = 12 bajta memorije.

Primjer

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 Indeks

Varijable 2000 2001 2002 2003 2004 2005 2006 2007 Adresa

Ovo je prikaz kako su nizovi raspoređeni u memoriji za gore deklarisani niz u C.

Svaki znak u nizu ima indeks i adresu dodijeljenu svakom znaku u nizu. U gornjem prikazu, nulta znak ("\ 0") automatski sastavlja C sastavljač na kraju svakog niza kada inicijalizira gore deklarisani niz. Obično se žice deklariraju korištenjem dvostrukih navodnika prema pravilima inicijalizacije stringova, a kada se prevoditelj susretne s dvostrukim navodnicima, automatski dodaje null znak na kraju niza.

Iz gornjeg primjera, kao što znamo da naziv matrice upućuje na 0. indeks i adresu 2000, kao što već znamo, indeksiranje matrice počinje od 0. Stoga,

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

Kao što je gornji primjer za jednodimenzionalni niz, tako pokazivač ukazuje na svaki znak niza.

Primjeri niza niza u C

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

Sada za dvodimenzionalne nizove imamo sljedeću sintaksu i raspoređivanje memorije. Zbog toga to možemo uzeti kao prikaz redaka i stupaca (format tablice).

char str_name(size)(max);

U ovom prikazu tablice, svaki redak (prvi podpis) definira kao broj stringova koje treba pohraniti, a stupac (drugi podpis) definira maksimalnu duljinu stringova.

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

Alternativno, možemo ga čak proglasiti i kao

Sintaksa:

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

Indeks

redovi

0 1 2 3 4 5 6 7
0gourja\ 0\ 0\ 0
1rm\ 0\ 0\ 0\ 0\ 0

Iz gornjeg primjera kao što znamo da naziv matrice ukazuje na 0. niz. Stoga,

str_name + 0 bodova za 0. niz "gouri"

str_name + 1 bod na 1. nizu "ram"

Kao što je gornji primjer za dvodimenzionalne nizove, tako pokazivač upućuje na svaki niz matrice.

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

Izlaz:

Funkcije žice

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

strcat (s1, s2); ova funkcija povezuje nizove s1 i s2, a niz s2 dodaje se na kraju niza s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); ova funkcija vraća duljinu niza s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Ova funkcija uspoređuje oba niza s1 i s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); ove funkcije pronalaze prvu pojavu zadanog znaka ch u nizu s1, a pokazivač upućuje na ovaj znak u nizu.

strstr (s1, s2); ovo pronalazi prvu pojavu niza s2 u nizu s1, a pokazivač upućuje na niz s2 u nizu s1.

Uz neke nevažeće operacije su str_arr (0) = "gouri"; u ovoj operaciji pokazivač niza dodjeljuje se konstantnom pokazivaču koji je nevažeći i nije moguć, jer je naziv polja konstantni pointer.

Da bismo to izbjegli, možemo dodijeliti str_arr pomoću strcpy (str_arr (0), "gouri").

Zaključak

Niz se definira kao popis nizova. Iz gornjeg uvoda, možemo zaključiti da su deklaracija i inicijalizacija nizova različiti kao što smo vidjeli za svaki niz koji prevoditelj dodaje null znak kada čita niz kao ulaz. Postoje mnoge funkcije rukovanja nizovima, a nekoliko funkcija s primjerima su objašnjeno gore. Stoga su nizovi nizova jednostavni kao i nizovi.

Preporučeni članci

Ovo je vodič za nizove struna u C. Ovdje smo raspravljali o osnovama nizova nizova, primjeru niza nizova u C i funkcijama nizova. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Niz nizova u C #
  2. Višedimenzionalni niz u C
  3. Nizovi u C programiranju
  4. 2D polja u C #
  5. Kako Array djeluje u Unixu sa sintaksom?

Kategorija: