Какво е масив от струни?

Низът е съвкупност от знаци, масив от низ е масив от масиви от знаци. Всеки низ е завършен с нулев символ. Масивът от низ е едно от най-често срещаните приложения на двуизмерни масиви.

scanf () е функция за въвеждане със спецификатор на формат% s, за да се чете низ като вход от терминала. Но недостатъкът е, че той се прекратява веднага щом срещне пространството. За да се избегне това получава () функция, която може да чете произволен брой низове, включително бели интервали.

Sting е масив от символи, завършващ със специалния символ, известен като нулев символ ("\ 0").

Синтаксис

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

пример

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

Str_name е името на низа, а размерът определя дължината на низа (брой знаци).

String може да бъде определен като едномерен масив от знаци, така че масивът от низове е двуизмерен масив от знаци.

Синтаксис

char str_name(size)(max);

Синтаксис

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

Като алтернатива дори можем да го декларираме като

Синтаксис

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

От дадения синтаксис има два абонамента, първият е за колко низове да се декларира, а вторият е да се определи максималната дължина на символите, която всеки низ може да съхранява, включително нулевия символ. Концепцията на C вече обяснява, че всеки символ заема 1 байт данни, докато разпределя памет, горният пример на синтаксис заема 2 * 6 = 12 байта памет.

пример

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 Индекс

Променливи 2000 2001 2002 2003 2004 2005 2006 2007 Адрес

Това е представяне на това как низовете се разпределят в паметта за декларирания по-горе низ в C.

Всеки символ в низа има индекс и адрес, разпределени за всеки символ в низа. В горното представяне нулевият символ ("\ 0") се поставя автоматично от компилатора на C в края на всеки низ, когато инициализира по-горе декларирания масив. Обикновено низовете се декларират с помощта на двойни кавички съгласно правилата на инициализацията на низове и когато компилаторът срещне двойни кавички, автоматично добавя нулев символ в края на низа.

От горния пример, тъй като знаем, че името на масива сочи към 0-ти индекс и адрес 2000, както вече знаем, индексирането на масив започва от 0. Следователно,

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

Както горният пример е за едномерен масив, така показалеца сочи към всеки символ на низа.

Примери за масив от масив в C

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

Сега за двумерните масиви имаме следното разпределение на синтаксис и памет. За това можем да го приемем като представяне на редове и колони (формат на таблицата).

char str_name(size)(max);

В това представяне на таблицата всеки ред (първи индекс) дефинира като брой низове, които трябва да се съхраняват, а колоната (втори индекс) определя максималната дължина на низовете.

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

Като алтернатива дори можем да го декларираме като

Синтаксис:

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

индекс

Редове

0 1 2 3 4 5 6 7
0гофRаз\ 0\ 0\ 0
1Rаm\ 0\ 0\ 0\ 0\ 0

От горния пример, тъй като знаем, че името на масива сочи към 0-и низ. Следователно,

str_name + 0 точки до 0-и низ „gouri“

str_name + 1 точки към 1-ви низ „овен“

Както горният пример е за двумерни масиви, така показалеца сочи към всеки низ от масива.

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

изход:

Функции на струните

strcpy (S1, S2); тази функция копира низ s2 в sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (S1, S2); тази функция свързва низовете s1 и s2, низът s2 се добавя в края на низа s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); тази функция връща дължината на низа s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (S1, S2); Тази функция сравнява и двата низа s1 и s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); тези функции намират първото възникване на дадения символ ch в низа s1 и показалеца сочи към този символ в низ.

strstr (S1, S2); това намира първото възникване на низ s2 в низа s1 и показалеца сочи към низа s2 в низа s1.

С някои невалидни операции са str_arr (0) = „gouri“; в тази операция показалецът на низ е присвоен на постоянния показалец, който е невалиден и не е възможен, тъй като името на масива е постоянен показалец.

За да избегнем това, можем да зададем str_arr, като използваме strcpy (str_arr (0), “gouri”).

заключение

Самият масив определя като списък с низове. От горното въведение можем да заключим, че декларирането и инициализацията на низовете са различни, както видяхме за всеки низ компилаторът добавя нулев символ, когато чете низ като вход. Има много функции за обработка на струни, а няколко функции с примери са обяснени по-горе. Следователно масивите на низа са толкова лесни, колкото масивите.

Препоръчителни статии

Това е ръководство за стрингов масив в C. Тук обсъждаме основите на Array Strings, Пример за Array String в C и Функциите на низовете. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. String Array в C #
  2. Многоизмерен масив в С
  3. Масиви в C програмиране
  4. 2D масиви в C #
  5. Как работи масивът в Unix със синтаксис?