Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
979 Кб
Скачать
☆

12.1. Основные функции Си для работы со строками

Очень часто при работе с символьными массивами возникает задача их обработки (сравнение строк, объединение строк, поиск подстроки в строке и так далее). В заголовочном файле <string.h> языка Си описано множество функций для работы со строками.

Например, функции:

  • копирования строк (strcpy, strncpy);

  • сравнения строк (strcmp, strncmp);

  • объединения строк (strcat, strncat);

  • поиска подстроки (strstr);

  • поиска вхождения символа (strchr, strrchr, strpbrk);

  • определения длины строки (strlen);

  • преобразования строки в число (atoi, atoll, atof);

и так далее.

Учитывая, что строки состоят из символов, полезно знать некоторые функции работы с символами. Для работы с символами служит библиотека ctype (заголовочный файл ctype.h). Она содержит:

  1. Функции проверки на принадлежность символа множеству:

    • isalmum(c) – букв и цифр (A-Z, a-z, 0-9);

    • isalfa(c) – букв (A-Z, a-z);

    • iscntrl(c) – управляющих символов (с кодами 0…31 и 127);

    • isdigit(c) – цифр (0-9);

    • isgraph(c) – печатаемых символов кроме пробела;

    • islower(c) – букв нижнего регистра (a-z);

    • isprint(c) – печатаемых символов;

    • ispunct(c) – знаков пунктуации;

    • isspace(c) – символов-разделителей;

    • isupper(c) – букв верхнего регистра (A-Z);

    • isxdigit(c)- шестнадцатеричных цифр.

  2. Функции преобразования символов:

    • tolower(c) - к нижнему регистру;

    • toupper(c) – к верхнему регистру.

Лабораторная работа № 12 Обработка символьных массивов

ЦЕЛЬ РАБОТЫ: •получение навыков объявления, инициализации, использования символьных массивов при обработке строк на С/С++.

Выполнение работы: освоить теоретический материал, выполнить общее для всех задание I и в соответствии с вариантом составить программу (задание II).

Задание I

  1. Изучение способов формирования строк в языке Си

    • Набрать и отладить программу:

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

{

char Arr1[25];

char Arr2[]={"Second string!"};

char Arr3[]={'T','h','i','r','d',' ',

's','t','r','i','n','g'};

char *Arr4="Fouth string";

cout<<"\nEnter string: \"First string\": ";

cin>>Arr1;

cout<<"\nString 1: "<<Arr1; // Оператор 1

cout<<"\nString 2: "<<Arr2; // Оператор 2

cout<<"\nString 3: "<<Arr3; // Оператор 3

cout<<"\nString 4: "<<Arr4; // Оператор 4

return 0;

}

  • Проанализировать результат работы программы и ответить на вопрос, почему Оператор 2 и Оператор 4 выводят на экран свои фразы полностью, а оператор 1 – только ее часть.

  • Почему Оператор 3 выводит всю фразу строки Arr3 и часть другой строки.

  • Что нужно сделать, чтобы Оператор 3 выводил только свою фразу.