Mis on keelpillide massiiv?

String on märkide kogu, stringi massiiv on märkide massiivide massiiv. Iga string lõpeb nullmärgiga. Stringimassiiv on kahemõõtmeliste massiivide üks levinumaid rakendusi.

scanf () on sisendfunktsioon vorminguspektriga% s, et lugeda stringi terminali sisendina. Kuid puuduseks on see, et see lõpeb kohe, kui see kosmosega kokku puutub. Selle vältimiseks saab funktsiooni (), mis suudab lugeda suvalist arvu stringe, sealhulgas tühikuid.

Sting on tähemärkide rühm, mis lõpeb erimärgiga, mida tuntakse nullmärgina (“\ 0”).

Süntaks

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

Näide

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

Str_name on stringi nimi ja suurus määrab stringi pikkuse (tähemärkide arvu).

Stringi saab määratleda kui ühemõõtmelist tähemärkide massiivi, nii et stringide massiiv on kahemõõtmeline tähemärkide massiiv.

Süntaks

char str_name(size)(max);

Süntaks

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

Teise võimalusena võime selle isegi kuulutada

Süntaks

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

Antud süntaksist on kaks alaindeksit, esimene on deklareeritavate stringide jaoks ja teine ​​on maksimaalne tähemärkide pikkuse määratlemiseks, mida iga string saab salvestada, sealhulgas nullmärgi. C mõiste selgitab juba seda, et iga märk võtab mälu eraldamisel 1 baiti andmeid, ülaltoodud süntaksi näide võtab mälu 2 * 6 = 12 baiti.

Näide

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

Muutujad 2000 2001 2002 2003 2004 2005 2006 2007 2007 Aadress

See näitab, kuidas stringe eraldatakse mälus eespool C-s deklareeritud stringi jaoks.

Igal stringi märgil on stringi igale tähemärgile eraldatud register ja aadress. Ülaltoodud kujunduse korral paigutab C kompilaator automaatselt nööri tähemärgi (“\ 0”) iga stringi lõppu, kui see initsialiseerib ülalnimetatud deklareeritud massiivi. Tavaliselt deklareeritakse stringe kahekordsete jutumärkide abil vastavalt stringide lähtestamise reeglitele ja kui kompilaator ilmub topeltjutumärkidega, lisab string stringi lõpus automaatselt tühjad märgid.

Ülaltoodud näitest, kuna me teame, et massiivi nimi osutab 0. indeksile ja aadressile 2000, kuna me juba teame, et massiivi indekseerimine algab nullist. Seetõttu

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

Kuna ülaltoodud näide on ühemõõtmelise massiivi kohta, osutab osuti stringi igale tähemärgile.

Massiivi stringi näited C-s

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

Kahemõõtmeliste massiivide jaoks on meil järgmine süntaks ja mälujaotus. Selleks võime seda kasutada rea ​​ja veeru esitusena (tabeli vorming).

char str_name(size)(max);

Selles tabelikujutises määratleb iga rida (esimene alaindeks) salvestatavate stringide arvu ja veerg (teine ​​alaindeks) määratleb stringide maksimaalse pikkuse.

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

Teise võimalusena võime selle isegi kuulutada

Süntaks:

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

Indeks

Ridad

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

Ülaltoodud näitest, nagu me teame, osutab massiivi nimi 0-ndale stringi. Seetõttu

str_name + 0 punkti 0. stringile “gouri”

str_name + 1 punkti 1. stringi “ram” juurde

Kuna ülaltoodud näide on kahemõõtmeliste massiivide kohta, osutab osuti massiivi igale stringile.

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

Väljund:

Keelte funktsioonid

strcpy (s1, s2); see funktsioon kopeerib stringi s2 otse torkesse s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); see funktsioon ühendab stringe s1 ja s2, stringi s2 lisatakse stringi s1 lõppu.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); see funktsioon tagastab stringi pikkuse s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); See funktsioon võrdleb stringe s1 ja s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); need funktsioonid leiavad antud märgi ch esmakordse esinemise stringis s1 ja osuti osutab sellele märgile stringis.

strstr (s1, s2); see leiab stringi s2 esimest esinemist stringi s1 ja osuti osutab stringi s1 stringi s2.

Mõne kehtetu toiminguga on str_arr (0) = “gouri”; selles toimingus määratakse stringi osuti konstantsele osutile, mis on kehtetu ja pole võimalik, kuna massiivi nimi on konstantne osuti.

Selle vältimiseks saame strcar'i abil määrata str_arr (str_arr (0), “gouri”).

Järeldus

Massiiv ise määratletakse stringide loendina. Ülaltoodud sissejuhatuse põhjal võime järeldada, et stringide deklareerimine ja initsialiseerimine on erinev, nagu nägime iga stringi korral, mille koostaja lisab stringi sisendiks nullmärgi. Stringikäsitsusfunktsioone on palju, mõned funktsioonid koos näidetega on ülalpool selgitatud. Seetõttu on stringi massiivid sama lihtsad kui massiivid.

Soovitatavad artiklid

See on juhend stringemassiiviks C. Siin käsitleme maatriksstringide põhitõdesid, C-massiivi stringi näidet ja stringide funktsioone. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Stringimassiiv C # -s
  2. Mitmemõõtmeline massiiv C-s
  3. Massiivid C-programmeerimises
  4. 2D-massiivid C # -s
  5. Kuidas massiiv töötab Unixis koos süntaksiga?

Kategooria: