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 |
0 | g | O | U | R | minä | \ 0 | \ 0 | \ 0 |
1 | R | m | \ 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 -
- Merkkijono taulukossa C #
- Moniulotteinen taulukko C: ssä
- Ryhmät C-ohjelmoinnissa
- 2D-ryhmät C #: ssä
- Kuinka Array toimii Unixissä Syntaxin kanssa?