Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab4 / ЯП_лаб_4.doc
Скачиваний:
2
Добавлен:
18.02.2023
Размер:
179.71 Кб
Скачать

Лабораторная работа № 4

Тема: Программирование с использованием строк

Цель: Научиться работать с векторными данными языка «С»: строки. Изучить правила объявления строки и обращение к их элементам, библиотечные функции для работы со строками. Освоить основные алгоритмы обработки строк.

Краткая теория

Строка – упорядоченный набор символов (или массив символов).

Язык «С» используется способ организации строк с завершающим нулем, т.е. строка – это массив символов, последним элементом которого является ноль:

Символ 1

Символ 2

Символ N

Ноль (0)

Объявление строк имеет следующий синтаксис:

char имя[размер]; //Без инициализации

char имя[размер] = “строка”; //С инициализацией

char имя[] = “строка”; //С инициализацией, без указания размера

Примеры:

char str_a[5];

char str_b[10] = “String!”;

char str_c[] = “ String!”;

Объявление константных строк:

const char имя[рразмер] = строковая_константа;

Пример:

const char str[]=”Constant string!”;

Ввод и вывод строк осуществляется с помощью функций библиотеки stdio.h.

В функциях форматированного ввода и вывода строка задается спецификатором типа %s. При этом необходимо учитывать, что символами разделителями в функции scanf являются: пробел, табуляция, перевод строки. Поэтому, используя данную функцию невозможно ввести строку, состоящую из нескольких строк.

Альтернативой являются функции строкового ввода и вывода:

char *gets(char *);

int puts(const char *);

Функция ввода строки осуществляет ввод до нажатия клавиши ВВОД, позволяя тем самым вводить строки из нескольких слов.

Также в библиотеке stdio.h присутствуют функции форматированного ввода и вывода из строк:

int sscanf(const char *buffer, const char *format[, address, ...]);

int sprintf(char *buffer, const char *format[, argument, ...]);

Основные функции для обработки строк содержаться в библиотеках stdlib.h и string.h.

Функции библиотеки stdlib.h (только стандартные)

Заголовок функции

Описание функции

int atoi(const char *string);

Преобразование строки в целое число.

long int atol(const char *string);

Преобразование строки в длинное целое число.

long long int atoll(const char *string);

Преобразование строки в 64-разрядное целое число.

double atof(const char *string);

Преобразование строки в вещественное число двойной точности.

Функции библиотеки string.h (только стандартные)

Заголовок функции

Описание функции

size_t strlen(const char *string);

Определение длины строки

char * strcpy(char * targetstring, const char *sourcestring);

Копирование второй строки в первую

char * strncpy(char * targetstring, const char * sourcestring, size_t num);

Копирование первых num символов второй строки в первую строку

int strcmp(const char *string1, const char *string2);

Сравнение двух строк: >0 - больше, <0 – меньше, ==0 – равны.

int strncmp(const char *string1, const char *string2, size_t num);

Сравнение первых num символов двух строк: >0 - больше, <0 – меньше, ==0 – равны.

char * strcat(char *targetstring, const char *sourcestring);

Объединение двух строк.

char * strncat(char *targetstring, const char *sourcestring, size_t num);

Объединение строк (только первые num символов строки sourcestring)

char * strchr(const char *string, int c);

Поиск символа C в строке string.

char * strrchr(const char *string, int c);

Поиск символа C в строке string (в обратном направлении)

char * strpbrk(const char *string, const char *charset);

Поиск первого вхождения в строку string любого из символов строки charset

char * strstr(const char *string, const char *substring);

Поиск строки substring в строке string: возвращает указатель на первое вхождение

size_t strcspn(const char *string, const char *charset);

Поиск строки substring в строке string: возвращает индекс первого символа в первом вхождении

char * strtok(char *string, const char *charset);

Поиск первого слова в строке string. В строке charset передаются символы разделители.

Соседние файлы в папке Lab4