Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Введення-виведення рядків

Розглянемо найбільш розповсюдженні бібліотечні функції gets() та puts( ).

Функція gets( ) отримує рядок з буфера клавіатури. Вона зчитує символи до тих пір, поки не зустріне символ нового рядка (‘\n’). Функція бере вcі символи до знака ‘\n’, приєднує до них нуль-символ та передає рядок програмі, що її визиває.

Приклад:

/* отримання імені * /

main ( )

{ char name [81]; /* виділення пам'яти*/

printf ("Як вас звуть? \n");

gets(name); /* ім'я поміщується до масиву name */

cout<<”Гарне ім’я”<<name<<”\n”;

Функція puts( ) виводить рядок символів на консоль виводу, у неї є тільки один аргумент - покажчик на рядок.

Приклад:

void main ( ) {

char str[]=”Приклад”;

puts (str);

}

Операції над рядками

Для використання наведених далі функцій необхідно додати до програми файл string.h:

#include <string.h>

Таблиця 5.2 – Функції для роботи з рядками

Функція Опис
char *strcat (st1, st2); char *st1, *st2; Використовується для злиття рядків символів. В результаті st2 заповнюється символами st1 та st2.
char *strnkat (st1, st2, n); char *st1, *st2; int n; Виконує злиття двох рядків так, що з другого рядка копіює не больш за n символів.
int strcmp (st1, st2); char *st1, *st2; Порівнює два рядка у лексикографічному порядку. Повертає 0, якщо st1=st2 -1, якщо st1<st2 1, якщо st1>st2  
int strncmp (st1, st2, n); char *st1, *st2; int n; Порівнює перші n символів двох рядків.
char *strcpy (st1, st2); char *st1, *st2; Копіює рядок st2 в st1.
char *strncpy (st1, st2, n); char *st1, *st2; int n; Копіює не більш ніж n символів рядка st2.
int strlen (str); char *str; Визначає довжину рядка, тобто кількість символів у рядку без завершаючого ‘0’.
char *strchr (str, c); char *str; int c; Знаходить у вказаному рядку перші входження символа с.
char *strrchr (str, c); char *str; int c; Знаходить у рядку останнє входження символа с.

 

Продовження таблиці 5.2

char *strpbrk (st1, st2); char *st1, *st2; Знаходить у рядку st1 деякий із множини символів, що входять до рядка st2.
char *strspn (st1, st2); char *st1, *st2; Визначає довжину відрізка рядка st1, що містить символи зі множини символів, що входять до рядка st2.
char *strtok (st1, st2); char *st1, *st2; Виділяє з рядка st1 лексеми, разподілені любим із множини символів, що входять до рядка st2.

Приклад:

/* використання функцій strcat( ) и strcpy( )*/

main ( )

{

static char name [80];

static char cpname [80];

static char add [] = “додано до кількості користувачів системи”;

printf(“Вкажіть ваше прізвище.\n”);

gets(name);

strcpy(cpname, name); /*копія прізвища*/

strcat(name, add);

puts(name);

puts(cpname);

puts(add);

}

 

Результати роботи програми:

Вкажіть ваше прізвище.

Іванов

Іванов додано до кількості користувачів системи

Іванов

додано до кількості користувачів системи

 




Переглядів: 546

<== попередня сторінка | наступна сторінка ==>
Основні теоретичні відомості | Перевірка та перетворення символів

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.013 сек.