Vad är ett array of string?

Strängen är en samling tecken, en matris med en sträng är en matris med matriser av tecken. Varje sträng avslutas med ett nolltecken. En matris med en sträng är en av de vanligaste tillämpningarna av tvådimensionella matriser.

scanf () är inmatningsfunktionen med formatformatet% s för att läsa en sträng som ingång från terminalen. Men nackdelen är att den upphör så snart den möter utrymmet. För att undvika denna blir () -funktion som kan läsa valfritt antal strängar inklusive vita rymden.

Sting är en rad tecken som avslutas med specialtecknet som kallas nolltecknet (“\ 0”).

Syntax

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

Exempel

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

Str_name är strängnamnet och storleken definierar strängens längd (antal tecken).

En sträng kan definieras som en endimensionell grupp av tecken, så en rad strängar är två – dimensionella arrayer med tecken.

Syntax

char str_name(size)(max);

Syntax

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

Alternativt kan vi till och med förklara det som

Syntax

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

Från den givna syntaxen finns det två subskript, det första är för hur många strängar som ska deklareras och den andra är att definiera den maximala längden på tecken som varje sträng kan lagra inklusive nolltecknet. C-konceptet förklarar redan att varje tecken tar 1 byte med data vid tilldelning av minne, ovanstående exempel på syntax upptar 2 * 6 = 12 byte minne.

Exempel

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

Variabler 2000 2001 2002 2003 2004 2005 2006 2007 Adress

Detta är en representation av hur strängar fördelas i minnet för den ovan deklarerade strängen i C.

Varje tecken i strängen har ett index och en adress tilldelad varje tecken i strängen. I ovanstående placering placeras nolltecknet ("\ 0") automatiskt av C-kompilatorn i slutet av varje sträng när den initialiserar den ovan deklarerade matrisen. Vanligtvis deklareras strängar med hjälp av dubbla citat enligt reglerna för stränginitieringen och när kompilatorn möter dubbelcitat lägger den automatiskt till nolltecken i slutet av strängen.

Från exemplet ovan, eftersom vi vet att namnet på matrisen pekar på det 0: e indexet och adress 2000 eftersom vi redan vet att indexeringen av en matris börjar från 0. Därför

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

Som exemplet ovan är för en-dimensionell matris så pekar pekaren på varje tecken i strängen.

Exempel på Array String i C

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

För tvådimensionella matriser har vi följande syntax och minnesallokering. För detta kan vi ta det som rad- och kolumnrepresentation (tabellformat).

char str_name(size)(max);

I denna tabellrepresentation definierar varje rad (första subskriptet) som antalet strängar som ska lagras och kolumnen (andra underskriften) definierar strängarnas maximala längd.

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

Alternativt kan vi till och med förklara det som

Syntax:

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

Index

rader

0 1 2 3 4 5 6 7
0gourjag\ 0\ 0\ 0
1renm\ 0\ 0\ 0\ 0\ 0

Från ovanstående exempel som vi vet att namnet på matrisen pekar på den 0: e strängen. Därför,

str_name + 0 pekar på 0: e strängen “gouri”

str_name + 1 pekar på 1: a sträng “ram”

Som exemplet ovan är för tvådimensionella matriser så pekaren pekar på varje sträng i matrisen.

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

Produktion:

Strängarnas funktioner

strcpy (s1, s2); den här funktionen kopierar strängen s2 till sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); denna funktion sammanfogar strängarna s1 och s2, strängen s2 läggs till i slutet av strängen s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); denna funktion returnerar längden på strängen s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Denna funktion jämför både strängarna s1 och s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); dessa funktioner hittar den första förekomsten av det givna tecknet ch i strängen s1 och pekaren pekar på detta tecken i strängen.

strstr (s1, s2); detta hittar den första förekomsten av sträng s2 i strängen s1 och pekaren pekar på strängen s2 i strängen s1.

Med några ogiltiga operationer är str_arr (0) = "gouri"; i denna operation tilldelas strängpekaren till den konstanta pekaren som är ogiltig och inte är möjlig, eftersom arrayens namn är en konstant pekare.

För att undvika detta kan vi tilldela str_arr med strcpy (str_arr (0), ”gouri”).

Slutsats

En matris själv definierar som en lista med strängar. Från ovanstående introduktion kan vi dra slutsatsen att deklarering och initiering av strängar är olika som vi såg för varje sträng kompilatorn lägger till nolltecken när den läser strängen som inmatning. Det finns många stränghanteringsfunktioner, några funktioner med exempel förklaras ovan. Därför är matriser av strängen lika enkla som matriser.

Rekommenderade artiklar

Det här är en guide till en strängarray i C. Här diskuterar vi grunderna i Array-strängar, exempel på Array-sträng i C och funktioner för strängar. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. String Array i C #
  2. Flerdimensionell matris i C.
  3. Arrays in C-programmering
  4. 2D-matriser i C #
  5. Hur fungerar Array i Unix med Syntax?

Kategori: