Реферат: Массивы 2

Функція strcmpO порівнює рядки si і s2 і повертає значення О, якщо рядки однакові, тобто містять одне і те ж число однакових си­мволів. Під порівнянням рядків ми розуміємо порівняння в лексико­графічному значенні, так як це відбувається, наприклад, в словни­ку. Звичайно, в функції відбувається посимвольне порівняння кодів символів. Код першого символа одного рядка порівнюється з кодом символа другого рядка. Якщо вони однакові, розглядаються другі си­мволи тощо. Якщо зі лексикографічно (в значенні словника) більше s2, то функція strcmpO повертає додатне значення, якщо менше -від'ємне значення.

Виклик функції strlen() має вигляд

strlen(s) ;

Функція strlen() повертає довжину рядка з, при цьому завершаль­ний нульовий байт не враховується. Виклик length("Hello") поверне

значення 5.

Розглянемо застосування цієї функції для обчислення довжини ря­дка, що вводиться з клавіатури.

#include <stdio.h>

#incl ude <string . h > m а і n () { char s(80], printf( "Введіть рядок:");

gets(s);

printf( "Рядок\п%з\п має довжину %d символів \n", s, strlen(s)); }

ДВОВИМІРНІ МАСИВИ

Як ми вже зазначали, мова С допускає багатовимірні масиви, най­простішою формою яких е двовимірний масив (two-dimentional array). Можна сказати, що двовимірний масив - це масив одновимірних маси­вів .

Двовимірний масив int a[3][4] можна подати у вигляді таблички:


Другий індекс

Перший індекс

а[0] [0]

а[0][1]

а[0][2]

а[0] [3]

а[1] [0]

а[1][1]

а[1][2]

а[1][3]

а[2][0]

а[2] [1]

а[2][2]

а[2] [3]

Перший індекс - номер рядка, другий індекс - номер стовпця. Кіль­кість байт пам'яті, яке необхідне для зберігання масиву, обчислю­ється по формулі

Кільк.байтів = <розмір типу даних>*<кільк.рядків>*<кільк.ствпців>.

У пам'яті комп'ютера масив розташовується безперервно по ряд­ках, тобто а[0][0], а[0][1], а[0][2], а[0][3], а[1][0], а[1][1], а[1] [2], а[2] [1],. ... а[2] [3] .

Потрібно пам'ятати, що пам'ять для всіх масивів, які визначені як глобальні, відводиться в процесі компіляції і зберігається весь час, поки працює програма.

Часто двовимірні масиви використовуються для роботи з таблицями, що містять текстову інформацію. Також дуже часто використовуються масиви рядків.

ІНІЦІАЛІЗАЦІЯ МАСИВІВ


Дуже важливо уміти ініціалізувати масиви, тобто привласнювати елементам масиву деякі початкові значення. У мові С для цього є спеціальні можливості. Самий простий спосіб ініціалізації наступ­ний: в процесі оголошення масиву можна указати в фігурних дужках список ініціалізаторів:

float а[6]={1.1, 2.2, 3.3, 4.0, 5, 6};

В іншому випадку така форма запису еквівалентна набору операторів:

а[0]=1.1; а[1]=2.2; ... а [5] =6.

Багатовимірні масиви, в тому числі і двовимірні масиви, можна ініціалізувати, розглядаючи іх як масив масивів.

Ініціалізації int а[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

і int а[3][5]={{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}};

еквівалентні.

Кількість ініціалізаторів не зобов'язана співпадати з кількістю

елементів масиву. Якщо ініціалізаторів менше, то значення решти

елементів масиву не визначені.

У той же час ініціалізації

int а[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);

і

int а[3][5]={{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10, 11}};

різні.

//change strings: 1-6, 2-5, 3-4

#i nclude<std io. h >

void mai n()

{ int temp, i, j, a[6][4]={1,2,3,4,

5,6,7,8,

9,10,11,12,

1 3,14,1 5,16,

17,18,19,20,

21 ,22,23,24};

for (i=0;i<3;i++) for (j=0;j<4;j++)

{ temp=a[i][j]; a[i][j]=a[5-i][j]; a[5-i][j]=temp; } for (i=0; i<6; i++)

К-во Просмотров: 909
Бесплатно скачать Реферат: Массивы 2