Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_ZI.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
1.85 Mб
Скачать

Int putchar(int c);

Вона записує символ с в потік stdout. Хоч в прототипі аргумент має цілий тип, в функцію треба посипати аргумент символьного типу. Можна передавати і значення цілого типу, якщо воно не виходить за діапазон 0-255. Функція повертає записаний символ або EOF у випадку помилки.

1.6 Ввід символів за допомогою функції getchar(). Функція getchar() одержує символ з потоку stdin, буферизує ввід і дублює символ на екрані.

Прототип функції має вигляд:

int getchar(void) void - порожній символ

Функція ch= getchar() чекає одержання символу з потоку stdin, символ в потоці появляється після натискання ENTER . Після натискання клавіші всі введені символи попадають в потік. За кожний виклик функція бере з потоку один символ, присвоюючи його по черзі ch.

Функція getсh(), одержує символ з потоку stdin, ,без буферизації і дублювання символ на екрані. Вона не визначена в стандарті ANSI, її нема в багатьох компіляторах, вона міститься в файлі conio.h і прототип має вигляд

Для вводу рядка з клавіатури є функція gets(). При вводі рядка з клавіатури треба виділити для нього пам’ять. Це робиться з допомогою функції malloc() або опису масиву. Функція вводить рядок тексту. При виклику вона зчитує всі символи, набрані на клавіатурі до першого символу кінця рядка (який генерується при натисканні клавіші ENTER).

Функція скидає символ кінця рядка, додає нульовий завершаючий символ і передає одержаний рядок в викликаючу програму. Рядок поміщається по адресі, яку передано в функцію gets(). через аргумент вказівник на char.

Для виконання функції gets(). Необхідно включити в програму файл stdio.h з допомогою директиви include. Прототип

сhar *gets(char *str) Функція має аргументом вказівник на рядок і повертає вказівник того ж типу. Функція зчитує символи з потоку до тих пір, поки не зустріне кінець рядка (\n) або кінець файлу. У випадку помилки функція повертає NULL. Перед викликом функції треба виділити достатньо пам’яті для зберігання рядків.

1.7 Функція puts(). Бібліотечна функція виводить рядок тексту на екран. Єдиним її аргументом є вказівник на рядок, який треба вивести. Оскільки літеральні рядки інтерпретуються компілятором як вказівники на рядки, функція puts() може виводити як змінні рядкового типу Char r[10]={‘a’,’b’,’c’,’d’, ‘\0’};, так і літерали Char r[10]=’’abcd’’;

Після кожного виведеного рядка функція автоматично переходить на новий рядок.

Приклад використання функції puts()

#include <stdio.h>

char *a1=»c1»;

char *a2=»c2»;

char *a3=»c3»;

Описані і заданіс пять змінних, які містять рядки, кожна з них є вказівником на змінну типу char і рядковою змінною.

int main()

{

puts(a1);

puts(a2);

puts(a3);

Вивід всіх рядків з допомогою функції . puts

return 0; }

Результат

с1

с2

с3

1.8 Функція printf(). Рядки можна виводити за допомогою функції printf(). Для виводу рядка використовується специфікація формату %s. Аргументом є тип вказівника на рядок. Рядок виводиться на екран, до тих пір поки не зустрінеться завершуючий нульовий символ. Наприклад

char *str=fghjkl;

printf(%s, str);

Рядки можна виводити разом з числовими змінними.

char *str=begin;

char *name=end;

int var=100;

printf(%s var=%d %s, str, var, name);

Результат

begin var=100 end

1.9 Визначення довжини рядка. Довжина рядка (кількість символів в ньому) визначається функцією strlen().Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

size_t strlen(char *str);

Тип size_t визначений в файлі stdring.h як unsigned. (ціле без знаку). Ця функція повертає ціле число без знаку. Цей тип використовується в багатьох функціях, які призначені для роботи з рядками. Аргумент, який передається в функцію це вказівник на рядок, довжину якого треба визначити. Функція повертає кількість символів. Від початку рядка до першого нульового символу.

1.10 Копіювання рядків. Один рядок не можна присвоїти іншому. Треба виконати копіювання даного рядка , який займає певну ділянку памяті в іншу ділянку, де знаходиться рядок-копія.

Є дві функції strcpy() i strncpy(). Вони описані в файлі string.h, який необхідно підключити для їх використання.

Функція strcpy(). Копіює заданий рядок в ділянку пам’яті. Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

char *strcpy(char *destination, const char *sourse);

Функція strcpy() копіює рядок, який знаходиться по адресу sourse (разом з завершаючим символом /0) в ділянку памяті, яка починається по адресу в вказівнику destination. Функція повертає вказівник на новий рядок destination.

До виклику функції необхідно виділити память для нового рядка. Сама функція не перевіряє, чи досить памяті по вказаній їй адресі. Якщо розподілу памяті не виконалося, то функція затре strlen(sourse) байт нової інформації, починаючи з адресу , вказаному в destination.

Функція strncpy().аналогічна функції strcpy(), тільки з її допломогою копіюється задана кількість символів.

1.11 Порівняння двох рядків. Функція strcmp() призначена для посимвольного порівняння двох рядків. Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

іnt strcmp(const chart *str1, const chart *str2);

Аргументи вказують на порівнювані рядки str1 і str2. Функція повертає від'ємне значення , якщо str1 менше str2, — нуль, якщо str1 = str2 і додатнє значення, якщо str1 більше. str2.

1.12 Порівняння кодів фрагментів двох рядків. Функція strncmp() призначена для посимвольного порівняння кодів фрагментів двох рядків довжиною n. Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

іnt strncmp(const chart *str1, const chart *str2, size_t n);

Функція порівнює n символів рядків str1 і str2. Порівняння виконується до тих пір, поки не вичерпаються n символів, або не буде здосягнутий кінець рядка str1. Результат порівняння такий, як в попередній функції.

1.13 Функції для конкатенація (з’єднання) рядків і їх фрагментів. Конкатенація – це приєднання одного рядка до кінця іншого. Для конкатенації є функція strcat().Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

char *strcat(char *a1, сonst char *a2);

Функція поміщає копію рядка а2 в кінець рядка а1 і ставить завершуючий нульовий символ в кінець нового рядка. Попередньо необхідно виділити для рядка а1 достатньо місця. Функція повертає вказівник на рядок а1.

Функція strncat() виконує конкатенацію рядків з вказівкою кількості символів. Прототип функції знаходиться в бібліотечному файлі string.h і має вигляд:

char *strncat(char *a1, Const char *a2, int n);

Якщо а2 має більше, ніж n символів, то до а1 приєднується n символів рядка а2. Якщо а2 має менше, ніж n символів, то до а1 приєднується рядок а2.

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