Mi az a vonósor?

A karakterlánc karaktergyűjtemény, a karakterlánc tömbje karakterek tömbje. Minden karakterlánc null karakterrel fejeződik be. A karakterlánc tömbje a kétdimenziós tömbök egyik leggyakoribb alkalmazása.

A scanf () a bemeneti függvény% s formátum-specifikátorral, hogy a karakterláncot a terminál bemeneteként olvassa le. De a hátránya, hogy megszűnik, amint találkozik a térrel. Ennek elkerülése érdekében a () függvény eléri a tetszőleges számú karakterláncot, beleértve a szóközöket is.

A Sting karakterek tömbje, amely null karakterként ismert speciális karakterrel zárul („\ 0”).

Szintaxis

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

Példa

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

A Str_name a karakterlánc neve, és a méret határozza meg a karakterlánc hosszát (karakterek száma).

Egy karakterlánc definiálható egydimenziós karakterek tömbjeként, tehát a karakterláncok tömbje kétdimenziós karakterek tömbje.

Szintaxis

char str_name(size)(max);

Szintaxis

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

Alternatív megoldásként azt is kijelenthetjük

Szintaxis

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

A megadott szintaxisból két alindex található, amelyek közül az első hány deklarálandó karakterláncot tartalmaz, a második pedig az, hogy mekkora karaktert tudjon tárolni az egyes karakterláncok, beleértve a null karaktereket is. A C koncepció már elmagyarázza, hogy minden karakter 1 bájtnyi adatot vesz fel a memória elosztása közben, a fenti szintaxispélda 2 * 6 = 12 bájt memóriát foglal el.

Példa

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

Változók 2000 2001 2002 2003 2004 2005 2006 2007 2007 Cím

Ez azt szemlélteti, hogy a karakterláncokat hogyan osztják el a memóriában a fenti C-ben megadott karakterlánchoz.

A karakterlánc minden karakteréhez tartozik egy index és cím a karakterlánc minden karakteréhez. A fenti ábrázolásban a null karaktert („\ 0”) a C fordító automatikusan behelyezi minden karakterlánc végére, amikor a fent deklarált tömböt inicializálja. Általában a karakterláncokat dupla idézőjelekkel deklarálják a karakterláncok inicializálásának szabályai szerint, és amikor a fordító dupla idézőjelekkel találkozik, akkor automatikusan null karaktert ad a karakterlánc végére.

A fenti példa alapján, mivel tudjuk, hogy a tömb neve a 0. indexre és a 2000. címre mutat, mivel már tudjuk, hogy a tömb indexálása 0-tól kezdődik. Ezért

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

Mivel a fenti példa egydimenziós tömbre vonatkozik, így a mutató a karakterlánc minden karakterére mutat.

Példák a tömb karakterláncára C-ben

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

A kétdimenziós tömbök esetében a következő szintaxis és memóriaelosztás áll rendelkezésre. Ehhez sor és oszlop ábrázolásként (táblázat formátum) vehetjük fel.

char str_name(size)(max);

A táblázat ábrázolásában minden sor (első alindex) a tárolni kívánt húrok számát határozza meg, az oszlop (második alindex) pedig a karakterláncok maximális hosszát.

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

Alternatív megoldásként azt is kijelenthetjük

Szintaxis:

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

Index

sorok

0 1 2 3 4 5 6 7
0gourén\ 0\ 0\ 0
1regym\ 0\ 0\ 0\ 0\ 0

A fenti példából tudjuk, hogy a tömb neve a 0. karakterláncra mutat. Ebből adódóan,

str_name + 0 pont a 0. „guri” karakterláncra

str_name + 1 pont az első „ram” karakterláncra

Mivel a fenti példa kétdimenziós tömbökre vonatkozik, így a mutató a tömb minden húrjára mutat.

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

Kimenet:

A húrok funkciói

strcpy (S1, S2); ez a funkció az s2 karakterláncot másolja az s1 sztrájkba.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (S1, S2); ez a függvény összekapcsolja az s1 és s2 karakterláncokat, az s2 karakterláncot az s1 karakterlánc végéhez csatoljuk.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); ez a függvény az s1 karakterlánc hosszát adja vissza.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (S1, S2); Ez a funkció összehasonlítja mind az s1, mind az s2 karakterláncokat.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); ezek a függvények az adott ch karakter első előfordulását az s1 karakterláncban találják meg, és a mutató erre a karakterre mutat a karakterláncban.

strstr (S1, S2); ez megtalálja az s2 karakterlánc első előfordulását az s1 karakterláncban, és a mutató az s1 karakterlánc s2 karakterláncára mutat.

Néhány érvénytelen művelettel: str_arr (0) = “gouri”; ebben a műveletben a karakterlánc mutatója az állandó mutatóhoz van hozzárendelve, amely érvénytelen és nem lehetséges, mivel a tömb neve állandó mutató.

Ennek elkerülése érdekében az str_arr hozzárendelhető az strcpy használatával (str_arr (0), „gouri”).

Következtetés

Maga a tömb sztringek listájaként határozható meg. A fenti bevezetésből azt a következtetést vonhatjuk le, hogy a karakterláncok deklarálása és inicializálása különbözik, mivel minden egyes karakterláncra láttuk, hogy a fordító null karaktert fűz hozzá, amikor a karakterláncot beolvassa. Sok karakterlánckezelő funkció van, néhány funkciót példákkal magyarázunk fent. Ezért a karakterlánc tömbjei ugyanolyan egyszerűek, mint a tömbök.

Ajánlott cikkek

Ez egy útmutató a húrok tömbjéhez C.-ban. Itt tárgyaljuk a tömbhúrok alapjait, példaként a tömbhurkokat C-ben és a húrok funkcióit. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Karakterlánc tömb C # -ben
  2. Többdimenziós tömb C-ben
  3. Tömbök a C programozásban
  4. 2D tömbök a C # -ben
  5. Hogyan működik a tömb az Unix-ban a szintaxissal?

Kategória: