Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуровані типи даних у C Масиви.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.31 Mб
Скачать

2 Рядки і символи

Рядок являє собою масив символів, що закінчується нуль-символом. Нуль символ – це символ з кодом 0. Може записуватися у вигляді керуючої послідовності ’\0’.

Приклади

char s1[15];

unsigned char m[10];

При описі рядок може бути ініціалізований строковим літералом (послідовність символів, узята в подвійних лапки), нуль-символ при цьому додається компілятором автоматично.

Приклад

char s[10]=”stroka”;

У цьому випадку для рядка s виділяється 10 байт пам'яті, шість байт будуть зайняті під символи рядка, сьомий – під нуль символ.

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

Приклад

char s[]=”stroka”;

Операція присвоювання одного рядка іншим не визначена (тому що рядок є масивом) і повинна виконуватися за допомогою циклу або функцій стандартної бібліотеки.

Введення/виведення рядків у стилі C++

Використовуються класи cin (метод getline) і cout. (заголовний файл <iostream.h>)

Приклад

#include <iostream.h>

void main()

{

const int n=20;

char st[n];

cout<<"Ввести рядок="

cin.getline(st,n);

cout<<"Введений рядок="<<st<<endl;

}

Пояснення: Метод getline() зчитує з вхідного потоку n-1 символів або менше (якщо символ пеходу рядка \n зустрінеться раніш) і записує їх у строкову змінну st. При цьому з вхідного потоку вилучається символ переходу рядка, а в рядок додається завершальний нуль-символ. Якщо у вхідному потоці більш n-1 символів, то при виконанні наступної операції введення будуть зчитуватися символи, що залишилися.

Для виведення рядка можна використовувати метод cout.

Введення/виведення рядків у стилі C

Використовуються функції gets() (введення), а також puts() і printf() (виведення). Заголовний файл <stdio.h>

Приклад

#include <stdio.h>

void main()

{

const int n=20;

char st[n];

printf("Ввести рядок=");

gets(st);

printf("Введений рядок=%s\n",st);

}

Пояснення: Функція gets() зчитує символи з клавіатури до появи символу ‘\n’ (натискання на Enter) і поміщає їх у рядок st. При цьому в рядок замість символу ‘\n’ заноситься нуль-символ.

Функцією printf() зручно користатися в тих випадках, коли потрібно вивести дані різних типів. Якщо потрібно виведення тільки рядків, то краще використовувати функцію puts().

Функція puts() виводить рядок на стандартний пристрій виведення, при цьому нуль-символ заміняється на символ нового рядка ‘\n’. Повертає позитивне значення при успішному виведенні і EOF при помилці.

Приклад

#include <stdio.h>

void main()

{

const int n=20;

char st[n];

printf("Ввести рядок=");

gets(st);

puts(st);

}

Для введення будь-яких символів, включаючи пробільні, можна використовувати наступне:

Введення за допомогою класу cin (метод get()). Заголовний файл

<iostream.h>)

Приклад

#include <iostream.h>

void main()

{

char ch;

ch=cin.get();

}

Функції getchar()– введення символу і putchar() – виведення символу. Заголовний файл <stdio.h>.

Приклад

#include <stdio.h>

void main()

{

char ch;

ch=getchar(); //введення символу

putchar(ch) //виведення символу

}

Для зчитування коду символу з клавіатури без відображення символу на екрані використовується функція getch() (аналог функції ReadKey у Турбо Паскалі). Заголовний файл <conio.h>.

Приклад

#include <conio.h>

#include <stdio.h>

void main()

{

char ch;

ch=getch(); //Введення символу

printf("Уведений символ=%c",ch);

}

Примітка – Для функціональних клавіш функцію getch() необхідно застосувати двічі, тому що при їхньому натисканні генерується двохсимвольний код (перший символ – нульовий).

Стандартное пространство имен std

Наилучший пример пространств имен можно найти в стандартной библиотеке С++. Все функции, классы, объекты и шаблоны стандартной библиотеки объявлены внутри пространства имен std.