Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabCi-IPPT_final.doc
Скачиваний:
4
Добавлен:
27.04.2019
Размер:
1.12 Mб
Скачать

Короткі теоретичні відомості

Рядком називають будь-яку послідовність символів. В рядках зберігається інформація, яка складається з букв, цифр, розділових знаків та інших символів.

Для зберігання символів в мові С використовується тип даних char. Для роботи з рядками мова С не має спеціального типу даних, тому рядок символів представляється як одновимірний масив елементів символьного типу, який закінчується нуль-символом – ‘\0’, що є ознакою кінця рядка.

Формат рядка (масиву символів):

char імя_масиву [кількість елементів масиву];

При оголошенні рядка треба враховувати те, що фактична довжина рядка буде на один символ менша ніж оголошена, бо в останнім елементом масиву буде нуль-символ.

Наступним кроком роботи з рядком є ініціалізація масиву – присвоєння початкових значень елементам масиву. Якщо масив оголошується та ініціалізується одночасно, то довжину рядка можна не зазначати.

Приклад варіантів оголошення та ініціалізації рядка:

char name[12]={‘U’,’n’,’i’,’v’,’e’,’r’,’s’,’i’,’t’,’y’, ‘\0’};

char name[12]=”University”;

char name[]=”University”;

Для роботи з масивами символів мова С має набір функцій, прототипи яких описані в модулі string.h. Для використання цих функцій до програми потрібно за допомогою директиви передпроцесора підключити файл заголовків #include string.h. Деякі з стандартних функцій приведено в додатку Б.

Приклад виконання лабораторної роботи

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

Граф-схема алгоритму програми

Блок 1 – початок алгоритму.

Блок 2 – введення рядка символів

Блок 3 - оператор циклу в якому здійснюється заміна великих букв на малі

Блок 4 – перевірка чи ASCII – код символу лежить в межах від 65 до 90 – велика буква латинської абетки. Якщо так, то до ASCII – коду символу додаємо число 32 – і отримуємо малу букву (блок 5), якщо результат перевірки негативний, то здійснюється перехід на наступну ітерацію циклу – блок 6.

Блок 7 – виведення рядка символів.

Блок 8 – закінчення алгоритму.

Код програми мовою с

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main(int argc, char *argv[])

{

char rjadok[35];

int i, dovg;

puts("Kuznetsova K. KI-22");

puts("Peretvorenja velukuh liter y malenki");

puts("");

puts("Vvedit rjadok");

gets(rjadok);

dovg = strlen(rjadok);

for(i=0; i<dovg; i++)

{

if (rjadok[i]>=65)

if (rjadok[i]<=90)

rjadok[i]=rjadok[i]+32;

}

printf("Otrumanuj rjadok\n %s\n",rjadok);

system("PAUSE");

return 0;

}

Тестовий приклад

Нехай введений рядок

IujhYTRgThIkLPjk

На екрані маємо отримати наступне повідомлення:

iujhytrgthiklpjk

Результати виконання

Контрольні запитання

  1. Який тип даних використовується у мові СІ для роботи з рядками?

  2. Яку максимальну кількість символів можна записати в наступний масив символів char vox[10]?

  3. Для чого потрібний нульовий символ?

  4. В якому випадку при оголошенні рядка можна не зазначати його довжину?

  5. Яку стандартну бібліотеку потрібно підключити до програми, щоб використовувати функції роботи з рядками?

  6. Яку помилку допущено при оголошені та ініціалізації символьного масиву: char city[4]=”Lviv”?

  7. Яка різниця між масивом символів і рядком?

  8. Які функції, призначені для введення рядків Ви знаєте?

  9. Які специфікатори потрібно застосувати у функції scanf() при введені рядка і при введені символу?

  10. В яких випадках нуль-символ дописується автоматично, а в яких випадках його потрібно дописувати вручну?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]