Що таке масив рядків?

Рядок - це сукупність символів, масив рядка - це масив масивів символів. Кожен рядок закінчується нульовим символом. Масив рядка - одне з найпоширеніших застосувань двовимірних масивів.

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 - це ім'я рядка, а розмір визначає довжину рядка (кількість символів).

Рядок може бути визначений як одновимірний масив символів, тому масив рядків є двовимірним масивом символів.

Синтаксис

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гоуri\ 0\ 0\ 0
1rам\ 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").

Висновок

Сам масив визначається як список рядків. З наведеного вище вступу ми можемо зробити висновок, що декларування та ініціалізація рядків відрізняються, як ми бачили, що для кожної рядки компілятор додає нульовий символ, коли читає рядок як вхідний. Існує багато функцій обробки рядків, кілька функцій із прикладами пояснено вище. Тому масиви рядка такі ж легкі, як і масиви.

Рекомендовані статті

Це посібник з масиву Strings в C. Тут ми обговорюємо основи рядків масиву, приклад рядка масиву в C та функції рядків. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Струнковий масив у C #
  2. Багатовимірний масив на C
  3. Масиви в програмуванні на С
  4. 2D масиви в C #
  5. Як працює масив в Unix із синтаксисом?