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

Вказівки до виконання завдання

У деяких випадках потрібно зробити аналіз символів, які використовуються у програмі. Для цього в мові програмування С є стандартний набір функцій. Їхні прототипи містяться в заголовному файлі ctype.h. Ці функції розглядають символ як аргумент і повертають ненульову величину, якщо символ належить до певної категорії, і нуль у протилежному випадку. У табл. 2 наведені функції з заголовного файла ctype.h, що перевіряють символьні значення, а в табл.3  функції, що змінюють символьні значення. Список усіх функцій для роботи із символьними змінними можна подивитися в довідковій літературі.

Таблиця 2

Ім'я

Істинні, якщо аргумент …

isfknum ()

Буквено–цифровий

isalpha ()

буквений

iscntrl ()

керуючий символ

isdigit ()

цифровий

isgraph ()

будь-який друкований символ, відмінний від пробілу

islower ()

символ нижнього регістра

isprint ()

друкований символ

ispunct ()

знак пунктуації (будь-який друкований символ, відмінний від пробілу і буквено–цифрового символу)

isspace ()

службовий символ

isupper ()

символ верхнього регістра

isxdigit ()

шістнадцятирічне число

Таблиця 3

Ім'я

Дія

tolower ()

переводить символ з верхнього регістра в нижній

toupper ()

переводить символ з нижнього регістра у верхній

Наведемо приклад їхнього використання. У пропонованій програмі кожен символ змінюється на наступний за ним у таблиці кодів ASCII, крім службових символів; якщо зустрічається символ верхнього регістра, то друкується його версія для нижнього регістра.

#include <stdio.h>

#include <сtуре.h>

int main()

{

char z;

while((z=getchar())!=’\n’)

{

if(isspace(z)) /*якщо z службовий символ*/

{

z=tolower(z); /*змінить у нижній регістр*/

putchar(z);

}

else

{

z=tolower(z);

putchar(z+1); /*друк наступного символу*/

}

}

return 0;

}

У процесі програмування іноді необхідно організувати вихід з файлу у випадку виконання яких або умов, що перевіряються в тілі циклу. Це можна здійснити за допомогою операторів continue і break.

Оператор continue

Цей оператор може бути використаний у всіх циклах. Якщо він одержує керування, то оператори, що стоять за ним, у тілі циклу пропускаються і починається нова ітерація. Якщо оператор continue використовується в циклі while і do while, то наступною дією буде оцінка умови виконання циклу, якщо даний оператор використовується в циклі for, те наступною дією буде обчислення коригувального виразу і потім обчислення виразу циклу, що перевіряється.

Приклад: виключити із символів, що вводяться, службові символи.

# include<stdio.h>

#include<ctype.h>

int main ()

{

char ch;

printf (“ Уведіть символи. Кінець уведення – знак #\n”);

while((ch=getchar())!=’#’)

{

if(isspace(ch))

continue;

putchar(ch);

}

return 0;

}

Коментарі: Функція isspace() має значення «істина», якщо її аргументом є службовий символ. Тому в нашій програмі при зустрічі службового символу буде виконуватися оператор continue, повертаючи керування на оператор while, де проводиться введення наступного символу.