Mikä on merkkijono?

Merkkijono on merkistökokoelma, merkkijonojoukko on ryhmä merkistöjä. Jokainen merkkijono päätetään nollamerkillä. Merkkijonojono on yksi kaksiulotteisten taulukkojen yleisimmistä sovelluksista.

scanf () on syöttöfunktio, jossa on% s -muotoinen määrittäjä merkkijonon lukemiseksi terminaalin tulona. Mutta haittana on, että se loppuu heti, kun se kohtaa tilan. Tämän välttämiseksi saa () -toiminnon, joka voi lukea minkä tahansa määrän merkkijonoja, mukaan lukien välilyönnit.

Sting on merkistö, joka päättyy erikoismerkillä, joka tunnetaan nollamerkkinä (”\ 0”).

Syntaksi

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

esimerkki

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

Str_name on merkkijonon nimi ja koko määrittää merkkijonon pituuden (merkkien lukumäärä).

Merkkijono voidaan määritellä yhden ulottuvuuden merkkijonoksi, joten merkkijono on kaksidimensionaalinen merkistö.

Syntaksi

char str_name(size)(max);

Syntaksi

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

Vaihtoehtoisesti voimme jopa julistaa sen

Syntaksi

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

Annetusta syntaksista on kaksi alaindeksiä, joista ensimmäinen on ilmoitettava, kuinka monta merkkijonoa julistetaan, ja toinen on määritellä niiden merkkien enimmäispituus, jotka kukin merkkijono voi tallentaa, mukaan lukien tyhjä merkki. C-konsepti selittää jo, että jokainen merkki vie yhden tavun dataa muistia allokoidessaan, yllä oleva syntaksiesimerkki vie 2 * 6 = 12 tavua muistia.

esimerkki

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 Hakemisto

Muuttujat 2000 2001 2002 2003 2004 2005 2006 2007 2007 Osoite

Tämä on esitys siitä, kuinka merkkijonot allokoidaan muistiin yllä ilmoitetulle merkkijonolle C: ssä.

Jokaisella merkkijonolla merkkijonolla on jokaiselle merkille osoitettu hakemisto ja osoite. Yllä olevassa esityksessä C-kääntäjä sijoittaa automaattisesti nollamerkin (“\ 0”) jokaisen merkkijonon loppuun, kun se alustaa yllä mainitun taulukon. Yleensä merkkijonot ilmoitetaan kaksoislainauksilla merkkijonojen alustussääntöjen mukaisesti, ja kun kääntäjä kohtaa kaksoismerkinnät, se lisää automaattisesti nollamerkin merkkijonon loppuun.

Yllä olevasta esimerkistä, koska tiedämme, että taulukon nimi osoittaa 0-indeksiin ja osoitteeseen 2000, koska tiedämme jo, että taulukon indeksointi alkaa nollasta. Siksi,

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

Koska yllä oleva esimerkki on yhden ulotteisen taulukon kohdalla, osoitin osoittaa merkkijonon jokaiselle merkille.

Esimerkkejä taulukon merkkijonosta C: ssä

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

Nyt kaksiulotteisille ryhmille meillä on seuraava syntaksi ja muistin allokointi. Tätä varten voimme ottaa sen rivinä ja sarakkeina (taulukomuoto).

char str_name(size)(max);

Tässä taulukkoesityksessä kukin rivi (ensimmäinen alaindeksi) määrittelee tallennettavien merkkijonojen lukumäärän ja sarake (toinen alaindeksi) määrittelee merkkijonon enimmäispituuden.

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

Vaihtoehtoisesti voimme jopa julistaa sen

Syntaksi:

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

Indeksi

riviä

0 1 2 3 4 5 6 7
0gOURminä\ 0\ 0\ 0
1Rm\ 0\ 0\ 0\ 0\ 0

Yllä olevasta esimerkistä tiedämme, että taulukon nimi osoittaa 0-merkkijonoon. Siksi,

str_name + 0 pistettä 0. merkkijonoon “gouri”

str_name + 1 osoittaa ensimmäiseen merkkijonoon ”ram”

Kuten yllä oleva esimerkki koskee kaksiulotteisia ryhmiä, osoitin osoittaa taulukon jokaiselle merkkijonolle.

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

lähtö:

Merkkijonon toiminnot

strcpy (s1, s2); tämä toiminto kopioi merkkijonon s2 innto sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); tämä funktio yhdistää merkkijonot s1 ja s2, merkkijono s2 lisätään merkkijonon s1 loppuun.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); tämä toiminto palauttaa merkkijonon pituuden s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Tämä toiminto vertaa molempia merkkijonoja s1 ja s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); nämä funktiot löytävät annetun merkin ch ensimmäisen esiintymisen merkkijonossa s1 ja osoitin osoittaa merkkijonoon.

strstr (s1, s2); tämä löytää merkkijonon s2 ensimmäisen esiintymisen merkkijonossa s1 ja osoitin osoittaa merkkijonolle s2 merkkijonossa s1.

Joillakin virheellisillä operaatioilla ovat str_arr (0) = “gouri”; tässä operaatiossa merkkijonon osoitin määritetään vakioosoittimelle, joka on virheellinen eikä ole mahdollinen, koska taulukon nimi on vakioosoitin.

Tämän välttämiseksi voimme määrittää str_arr: n käyttämällä strcpy: tä (str_arr (0), ”gouri”).

johtopäätös

Taulukko itse määrittelee merkkijonojen luettelon. Yllä olevasta johdannosta voimme päätellä, että merkkijonojen ilmoittaminen ja alustus eroavat toisistaan, kuten näimme jokaiselle merkkijonolle, jonka kääntäjä lisää nollamerkin, kun se lukee merkkijonon syötteenä. Merkkijononkäsittelytoimintoja on monia, muutama esimerkki selitetään yllä. Siksi merkkijonon taulukot ovat yhtä helppoja kuin taulukot.

Suositellut artikkelit

Tämä on opas merkkijonojoukkoon C. Tässä keskustellaan taulukkojonojen perusteista, esimerkistä taulukon merkkijonosta C ja merkkijonojen toiminnoista. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Merkkijono taulukossa C #
  2. Moniulotteinen taulukko C: ssä
  3. Ryhmät C-ohjelmoinnissa
  4. 2D-ryhmät C #: ssä
  5. Kuinka Array toimii Unixissä Syntaxin kanssa?