Ce este un Array of String?

Șirul este o colecție de caractere, un șir de șiruri este o serie de tablouri de caractere. Fiecare șir este încheiat cu un caracter nul. Un tablou dintr-un șir este una dintre cele mai comune aplicații ale matricelor bidimensionale.

scanf () este funcția de intrare cu formatul% s specificator pentru a citi un șir ca intrare de la terminal. Dar dezavantajul este că se termină imediat ce întâlnește spațiul. Pentru a evita acest lucru devine () funcția care poate citi orice număr de șiruri, inclusiv spații albe.

Sting este o serie de caractere terminate cu caracterul special cunoscut sub numele de caracter nul („\ 0”).

Sintaxă

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

Exemplu

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

Str_name este numele șirului și dimensiunea definește lungimea șirului (numărul de caractere).

O șir de caractere poate fi definită ca un tablou unidimensional de caractere, astfel încât un șir de șiruri este două-dimensional tablou de caractere.

Sintaxă

char str_name(size)(max);

Sintaxă

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

Alternativ, putem chiar să-l declaram ca

Sintaxă

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

Din sintaxa dată, există două abonamente, primul este pentru câte șiruri de declarat și al doilea este de a defini lungimea maximă a caracterelor pe care fiecare șir le poate stoca, incluzând caracterul nul. Conceptul C explică deja că fiecare caracter ia 1 octet de date în timp ce alocă memorie, exemplul de mai sus de sintaxă ocupă 2 * 6 = 12 octeți de memorie.

Exemplu

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 Index

Variabile 2000 2001 2002 2003 2004 2005 2006 2007 Adresa

Aceasta reprezintă o reprezentare a modului în care șirurile sunt alocate în memorie pentru șirul declarat mai sus în C.

Fiecare personaj din șir are un index și adresă alocate fiecărui caracter din șir. În reprezentarea de mai sus, caracterul nul („\ 0”) este plasat automat de către compilatorul C la sfârșitul fiecărui șir când inițializează tabloul declarat mai sus. De obicei, șirurile sunt declarate folosind ghilimele duble, conform regulilor de inițializare a șirurilor, iar atunci când compilatorul întâlnește ghilimele duble, automat adaugă caracter nul la sfârșitul șirului.

Din exemplul de mai sus, așa cum știm că numele tabloului indică indexul 0 și adresa 2000 așa cum știm deja indexarea unui tablou începe de la 0. Prin urmare,

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

Ca exemplul de mai sus este pentru un tablou unidimensional, astfel indicatorul indică fiecare caracter al șirului.

Exemple de șiruri de Array în C

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

Acum pentru matricile bidimensionale, avem următoarea alocare de sintaxă și memorie. Pentru aceasta, putem să o luăm ca reprezentare rând și coloană (format tabel).

char str_name(size)(max);

În această reprezentare a tabelului, fiecare rând (primul abonament) definește numărul de șiruri care trebuie stocate și coloana (al doilea subscript) definește lungimea maximă a șirurilor.

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

Alternativ, putem chiar să-l declaram ca

Sintaxă:

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

Index

rânduri

0 1 2 3 4 5 6 7
0goureu\ 0\ 0\ 0
1rAm\ 0\ 0\ 0\ 0\ 0

Din exemplul de mai sus, așa cum știm că numele tabloului indică șirul 0. Prin urmare,

str_name + 0 puncte la 0th string „gouri”

str_name + 1 puncte la primul șir „ram”

Ca exemplul de mai sus este pentru tablele bidimensionale, astfel indicatorul indică fiecare șir al tabloului.

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

ieşire:

Funcțiile șirurilor

strcpy (s1, s2); această funcție copiază șirul s2 în inting sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); această funcție concatenează șirurile s1 și s2, șirul s2 este anexat la sfârșitul șirului s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); această funcție returnează lungimea șirului s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Această funcție compară ambele șiruri s1 și s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); aceste funcții găsesc prima apariție a caracterului dat ch în șirul s1 și indicatorul indică acest caracter în șir.

strstr (s1, s2); aceasta găsește prima apariție a șirului s2 în șirul s1 și indicatorul indică șirul s2 din șirul s1.

Cu unele operațiuni nevalide sunt str_arr (0) = „gouri”; în această operație pointerul șirului este atribuit la indicatorul constant care este invalid și nu este posibil, deoarece numele tabloului este un pointer constant.

Pentru a evita acest lucru, putem atribui str_arr folosind strcpy (str_arr (0), „gouri”).

Concluzie

Un tabel în sine se definește ca o listă de șiruri. Din introducerea de mai sus, putem concluziona că declarația și inițializarea șirurilor sunt diferite, așa cum am văzut pentru fiecare șir, compilatorul adaugă un caracter nul atunci când citește șirul ca intrare. Există multe funcții de manipulare a șirurilor, câteva funcții cu exemple sunt explicate mai sus. Prin urmare, șirurile șirului sunt la fel de ușoare ca și tablourile.

Articole recomandate

Acesta este un ghid al unui Array Strings în C. Aici vom discuta elementele de bază ale șirurilor Array, Exemplu de șir de matrice în C și Funcțiile șirurilor. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Stray Array în C #
  2. Array multidimensional în C
  3. Arătări în programarea C
  4. Arhiere 2D în C #
  5. Cum funcționează Array în Unix cu sintaxa?